Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bedrock -> Develop #2563

Merged
merged 709 commits into from
May 16, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
709 commits
Select commit Hold shift + click to select a range
0e126cb
opnode: Reconcile epochs and handle reorgs (#309)
trianglesphere Apr 5, 2022
b6221f3
go.mod: update to squashed l2 geth diff d5e1fc1a74bda3cbe5715d5732621…
protolambda Apr 5, 2022
d7239cc
opnode/rollup: use L2 block height in L1-info deposit tx block-height…
protolambda Apr 5, 2022
abebb25
feat: DepositFeed receive function
tynes Mar 22, 2022
42f85bc
Update slither db
maurelian Mar 24, 2022
1d88233
Add solidity test on df.receive() function
maurelian Apr 5, 2022
5b585e3
Add warning message on DepositFeed.receive()
maurelian Apr 5, 2022
4687821
specs: Add Withdrawals specification
maurelian Mar 15, 2022
9858ab2
contracts: Add withdrawor and start of tests
maurelian Mar 30, 2022
13dfcb1
ops: Add withdrawor predeploy to docker setup
maurelian Mar 30, 2022
3f15a7a
Add gaslimit to withdrawal encoding
maurelian Mar 31, 2022
1723a30
test(contracts): Withdrawal creation and proof gen
maurelian Mar 31, 2022
f67ad06
deps: install entire goddamn monorepo using forge.
maurelian Mar 31, 2022
4611489
Add output root inclusion proof
maurelian Apr 1, 2022
45e7abc
Add storage inclusion proof
maurelian Apr 1, 2022
1f69eda
Improve testing against L2 node
maurelian Apr 4, 2022
34abb58
Add finalizationWindow var to WithdrawalVerifier
maurelian Apr 4, 2022
56fbd9c
Add WithdrawalVerified event
maurelian Apr 4, 2022
3fd3104
Remove unused constructor argument
maurelian Apr 4, 2022
03d936a
Clean up Forge test of WithdrawalVerifier
maurelian Apr 4, 2022
23c5bdc
ops: Docker get l2 genesis hash on startup
maurelian Apr 4, 2022
ec73d8a
contracts: ignore dirty submodules
maurelian Apr 4, 2022
a49177b
Don't run hardhat tests in CI
maurelian Apr 4, 2022
ba17fdd
Create Optimism Portal contract
maurelian Apr 5, 2022
a938540
Move receive function to OptimismPortal
maurelian Apr 5, 2022
f555076
Merge pull request #317 from ethereum-optimism/feat/receive
maurelian Apr 5, 2022
d8bb475
Merge pull request #316 from ethereum-optimism/update-l2geth
trianglesphere Apr 5, 2022
de7389d
specs: Add overview page (#286)
mslipper Apr 5, 2022
44b861b
Convert WithdrawalVerifier to a library
maurelian Apr 5, 2022
cad0a0f
contracts: Rename Withdrawor to Withdrawer
maurelian Apr 5, 2022
d41fcc9
specs: define timestamp bounds of derivation process, clear up block …
protolambda Apr 4, 2022
3e74be6
opnode/rollup: implement new timestamp bounds on block derivation bat…
protolambda Apr 5, 2022
de03e80
opnode: fix sequencer L1 origin advancing, and fix e2e genesis time
protolambda Apr 5, 2022
784b390
contracts: Add burn function to the Withdrawer contract
maurelian Apr 5, 2022
2b735f8
contracts: Add natspec comments
maurelian Apr 5, 2022
2ec1f74
contracts: Remove timestamp from OutputRootProof
maurelian Apr 5, 2022
1f6e383
contracts: undoL1ToL2Alias on withdrawals from a contract
maurelian Apr 5, 2022
28e6d0c
specs/rollup-node: improve spec based on review suggestions from @nor…
protolambda Apr 5, 2022
d4ed0c0
opnode/rollup: implement review suggestions from @trianglesphere
protolambda Apr 5, 2022
d646578
specs/rollup-node: document timestamp invariant between L2 and L1 origin
protolambda Apr 5, 2022
2cb04a6
opnode/rollup/driver: continue sequencing on current epoch if next L1…
protolambda Apr 5, 2022
8393ced
opnode/rollup: fix maxL2Time excl bound, and return adjusted maxL2tim…
protolambda Apr 6, 2022
b191cf3
Merge pull request #315 from ethereum-optimism/derivation-fixes
protolambda Apr 6, 2022
0b25240
contracts: Add withdrawer tests
maurelian Apr 5, 2022
1325e42
Rename Finalization Window to Finalization Period
maurelian Apr 6, 2022
9cf5af8
contracts: Validate output root proof in portal
maurelian Apr 6, 2022
548be0f
contracts: Use solidity custom errors
maurelian Apr 6, 2022
1df5292
contracts: Use unchecked math when safe
maurelian Apr 6, 2022
b31acaf
contracts: Add section dividers to contract layout
maurelian Apr 6, 2022
898d61c
specs: Update withdrawals spec to match impl
maurelian Apr 6, 2022
ae23047
contracts: Fix ETH burning in the withdrawer contract
maurelian Apr 6, 2022
e977fff
specs: Address review comments
maurelian Apr 6, 2022
fe5dd08
ops: Address review comments
maurelian Apr 6, 2022
42935c8
Update Dockerfile.opnode
mslipper Apr 6, 2022
dd9ccbe
Merge pull request #310 from ethereum-optimism/m/withdrawals
maurelian Apr 6, 2022
38a3930
ops: Fix devnet
mslipper Apr 6, 2022
00c593b
Update opnode/rollup/driver/state.go
mslipper Apr 6, 2022
4a70dd7
Update rollup.json
mslipper Apr 6, 2022
e39a51c
Update predeploy addresses
maurelian Apr 6, 2022
a8932b5
Merge pull request #322 from ethereum-optimism/m/bump-predeploy-addrs
maurelian Apr 6, 2022
83fc45d
Merge pull request #321 from mslipper/bugfix/devnet
protolambda Apr 6, 2022
dc7ddff
tests: Add tests for batch requests when the parent request fails
mslipper Apr 6, 2022
d3ba284
opnode: Don't start sequencing blocks until past the L1 genesis (#325)
trianglesphere Apr 6, 2022
b68cafe
opnode: update to latest L2 geth
protolambda Apr 6, 2022
fe310d0
readme: fix typos and break lines (#327)
protolambda Apr 6, 2022
a92c00f
Merge pull request #326 from ethereum-optimism/l2geth-kiln-update
protolambda Apr 6, 2022
355f413
Update ref optimistic geth image (#328)
mslipper Apr 6, 2022
9d16305
ci: Improve timestamp management in devnet (#329)
mslipper Apr 7, 2022
e4374fd
contracts: Move withdrawal logic into abstract contract
maurelian Apr 6, 2022
8c30999
contracts: Move withdrawal hashing logic into library
maurelian Apr 6, 2022
ec1cc88
contracts: Update .gas-snapshot
maurelian Apr 6, 2022
2084c02
contracts: silence compiler warnings
maurelian Apr 6, 2022
891d5c3
feat: expose debug http api (#334)
tynes Apr 7, 2022
b1f74f5
opnode: Use l2 safe head instead of l2 head
trianglesphere Apr 7, 2022
cc9cd72
opnode: Clear l1WindowBuf on insertEpoch failure
trianglesphere Apr 7, 2022
279d04a
hardhat: clean up the hardhat deposit task
tynes Apr 7, 2022
7d1fa94
fix: oe => optimism (#338)
smartcontracts Apr 7, 2022
19b5723
opnode: Rework state test to build on safe head
trianglesphere Apr 7, 2022
4df3819
Merge pull request #340 from ethereum-optimism/fix/deposits
tynes Apr 7, 2022
1dad265
opnode: fix setL1BlockValues selector used for deposits (#339)
Inphi Apr 7, 2022
1a353bd
rollup: fix address of the L1 Block Attributes contracts
maurelian Apr 7, 2022
776017b
fix: typo in l1InfoPredeployAddress
maurelian Apr 7, 2022
ee7250e
fix: gofmt and goimports
trianglesphere Apr 7, 2022
b94892d
opnode: Import constants
maurelian Apr 7, 2022
b843e4f
Merge pull request #331 from ethereum-optimism/m/fix-addr
tynes Apr 7, 2022
a056280
ops: fix formatting, add docker buildkit support
tynes Apr 7, 2022
abcb8df
ops: prune volumes on devnet-down
tynes Apr 7, 2022
3857cb6
Merge pull request #335 from ethereum-optimism/jg/fix_l2_safe_unsafe_…
protolambda Apr 7, 2022
fb396a4
fix: replace fraud with fault (#337)
smartcontracts Apr 7, 2022
8d7a1ee
opnode: Fix bug in block creation (#345)
trianglesphere Apr 7, 2022
b4ff49b
opnode: Don't allow arbitrary mints (#346)
trianglesphere Apr 7, 2022
6944c7e
Merge pull request #336 from ethereum-optimism/ops/buildkit
tynes Apr 7, 2022
77cb146
opnode,specs: deposit tx-hash uniqueness based on L1
protolambda Apr 8, 2022
c073a6c
opnode/l1: verify critical receipt/log info we get from RPC
protolambda Apr 8, 2022
1467d36
opnode/test: reconstruct deposit hash in e2e test, fetch l2 deposit r…
protolambda Apr 8, 2022
acdecb3
opnode/l1: fix panic on channel send after close, sema channel can st…
protolambda Apr 8, 2022
e8f732b
go.mod: l2 geth update with improved deposit tx hash
protolambda Apr 8, 2022
8b0a7de
README: remove alpha branch + update description (#332)
norswap Apr 8, 2022
7d0490b
allow building everything from top-level makefile
norswap Apr 7, 2022
b5e2eae
allow testing from top level makefile
norswap Apr 7, 2022
e57f43b
Update Makefile
mslipper Apr 8, 2022
dae55dc
Merge pull request #351 from ethereum-optimism/better-uniq-deposit-op…
protolambda Apr 8, 2022
04a3783
opnode/l1: wrap errors and fmt test imports
protolambda Apr 8, 2022
493def3
Merge pull request #324 from mslipper/tests/retries
protolambda Apr 8, 2022
db0ec75
opnode: don't expose types.Block to derive or driver packages, prefer…
protolambda Apr 8, 2022
a040532
opnode: add comments, fix genesis base case to get l1 origin
protolambda Apr 8, 2022
39fe50a
init: integration tests (#344)
mslipper Apr 8, 2022
de4182d
Merge pull request #354 from ethereum-optimism/use-payload-type
protolambda Apr 8, 2022
d7615e4
opnode: Fix possible panic in sequencer batch creation (#342)
trianglesphere Apr 8, 2022
3f21611
Merge pull request #320 from ethereum-optimism/m/refactor-portal
maurelian Apr 8, 2022
72d6735
opnode: Test Utilities (#319)
trianglesphere Apr 8, 2022
55a3868
Fix sync-start bug + improve sync-start comments (#355)
norswap Apr 8, 2022
ce05904
feat: deposit tx js helpers (#352)
tynes Apr 8, 2022
8afca46
devnet: Hardcode deposit feed bytecode (#359)
mslipper Apr 8, 2022
21b2b4d
opnode,l2os: Better lifecycle management (#358)
trianglesphere Apr 8, 2022
0874174
style: clean up and comments for state.go (#356)
smartcontracts Apr 9, 2022
da8b3e2
opnode: Parameterize deposit contract address (#361)
trianglesphere Apr 9, 2022
215c721
opnode/test: Add reverted deposit with mint test
Inphi Apr 11, 2022
eac35bb
fix(ci): use Foundry GHA (#367)
gakonst Apr 11, 2022
cddfc7c
opnode/test: check nonce increment in deposit fail
protolambda Apr 11, 2022
273c8ab
integration-tests: End-to-end withdrawal test (#362)
mslipper Apr 11, 2022
2f14c04
go.mod: bump l2geth version
Inphi Apr 11, 2022
3307176
Merge pull request #366 from Inphi/inphi/mint-causality
protolambda Apr 11, 2022
05136a3
opnode: Update and deploy contracts (#360)
trianglesphere Apr 11, 2022
c69fffd
specs: Update output root derivation (#357)
maurelian Apr 12, 2022
8412d33
opnode: libp2p setup
protolambda Apr 14, 2022
2111345
p2p flags, config, and libp2p + discv5 setup
protolambda Apr 14, 2022
f427edd
specs: initial rollup node p2p spec
protolambda Apr 14, 2022
bf72140
specs: Fix definition of output root
maurelian Apr 14, 2022
f2f19a8
Merge pull request #374 from maurelian/m/output-spec-fix
protolambda Apr 15, 2022
1f6ba1f
solidity: fail if updated gas snapshot isn't included
tynes Apr 15, 2022
3068429
Merge pull request #375 from ethereum-optimism/gas-snapshot
tynes Apr 15, 2022
3154314
p2p setup: implement review suggestions, fix toc, fix lint
protolambda Apr 17, 2022
2d62a30
opnode/p2p: test with require instead of assert
protolambda Apr 17, 2022
4974d34
contracts: Fix reentrancy attack in WithdrawalsRelay (#378)
maurelian Apr 19, 2022
84fc6ed
contracts: Output oracle improvements (#370)
maurelian Apr 19, 2022
ebb5183
Clean up withdrawals itest (#372)
maurelian Apr 19, 2022
bc50f1b
fix dead anchor link
norswap Apr 16, 2022
7dfafff
higher difficulty rather than number
norswap Apr 16, 2022
737dcac
'L1 attributes block' is not a thing + add link
norswap Apr 16, 2022
1f351a8
try to align sentences with lines
norswap Apr 19, 2022
23a337b
ci: Add automated docker builds for opnode and l2 output submitter (#…
mslipper Apr 19, 2022
d13dab5
contracts: Add deleteL2Output function
maurelian Apr 18, 2022
5769ea8
specs: Add deleteL2Output
maurelian Apr 20, 2022
93ac318
ci: Update Docker version in CircleCi (#381)
mslipper Apr 20, 2022
64e1796
contracts: reuse code (#380)
tynes Apr 20, 2022
00e65fe
Merge pull request #377 from maurelian/m/delete-outputs
maurelian Apr 20, 2022
54a8ffa
opnode: Better parsing of the TransactionDepositedEvent (#382)
trianglesphere Apr 26, 2022
1255731
Makefile,ops: docker compose up instead of run to make devnet-down wo…
protolambda Apr 26, 2022
c000de7
Merge pull request #373 from ethereum-optimism/p2p
protolambda Apr 26, 2022
4312748
opnode: Do not drop all deposits on parsing error (#383)
trianglesphere Apr 26, 2022
b93465a
opnode/test: Provide flag to access geth logs (#389)
trianglesphere Apr 27, 2022
cc7c5ce
opnode: Fix L1 Info Transactions
trianglesphere Apr 25, 2022
31d9a92
Merge pull request #386 from ethereum-optimism/jg/fix_tob_6
protolambda Apr 29, 2022
0c05488
contracts: import messengers (#393)
tynes Apr 30, 2022
88771cc
contracts: fix abi encoding in proof verification (#395)
tynes May 2, 2022
bb58a26
contracts: don't unalias on L2->L1
tynes May 3, 2022
168eed2
opnode: attach p2p host and discovery to rollup node, update e2e test…
protolambda May 3, 2022
5c61846
Merge pull request #400 from ethereum-optimism/fix/dont-alias-L2-to-L1
tynes May 3, 2022
bbe861a
deps: update forge-std
tynes May 3, 2022
ee39eb8
Merge pull request #403 from ethereum-optimism/deps/submodule-fix
tynes May 3, 2022
56713a2
contracts: fix build
tynes May 3, 2022
99126bf
build: fix bindings build
tynes May 3, 2022
6755418
fix: builds
tynes May 3, 2022
e4f2080
forge install: ds-test
tynes May 3, 2022
1a06837
build: fix for good
tynes May 3, 2022
a57eda0
l2os: update bindings
tynes May 3, 2022
f550870
Merge pull request #404 from ethereum-optimism/fix/build
tynes May 3, 2022
63e4beb
opnode: add seq nr to l1-info to fix driver bug
protolambda Apr 28, 2022
cc9f5c2
Merge pull request #392 from ethereum-optimism/fix-seq-num-reorgs
tynes May 4, 2022
ddf5cb4
feat: create opnode/predeploy package
cfromknecht Apr 15, 2022
0684a9f
opnode: refactor RPC server / config, prototype batch serving
protolambda Mar 29, 2022
523682d
feat: enforce size contraints on batch bundles
cfromknecht Apr 22, 2022
3bdca2a
feat: add BundleBuilder helper class
cfromknecht Apr 29, 2022
35167d4
fix: typo in l2os config docs
cfromknecht Apr 1, 2022
ebc23cf
feat: add GetBatchBundle method to rollupclient.RollupClient
cfromknecht Apr 1, 2022
1de894d
feat: simplify l2os rollupclient init
cfromknecht Apr 15, 2022
b2ffad5
feat: reduce BSS poll interval
cfromknecht Apr 1, 2022
bda9fc8
feat: add sequencer history db
cfromknecht Apr 1, 2022
40494e6
feat: add sequencer BSS driver to submit batches
cfromknecht Apr 1, 2022
07c937a
feat: add bss configuration
cfromknecht Apr 15, 2022
c224c25
feat: add LOG_TERMINAL flag to l2os, use non-global log instance
cfromknecht Apr 28, 2022
08288c0
feat: enable standalone bss, disable simple bss
cfromknecht Apr 1, 2022
ef43fbc
feat: remove simple bss
cfromknecht Apr 15, 2022
153e21d
feat: add bss to devnet
cfromknecht Apr 15, 2022
a087de8
fix: ci build bindings (#406)
tynes May 4, 2022
b906816
Merge pull request #312 from cfromknecht/bss
protolambda May 4, 2022
db4b4ff
opnode: Avoid busy-waiting while L2 head is behind L1
Inphi May 4, 2022
ec11032
Merge pull request #413 from Inphi/inphi/cpu-causality
protolambda May 5, 2022
e6d8d44
opnode: Fix Incorrect error handling when creating an L2 block (#391)
trianglesphere May 5, 2022
3a1f6ff
opnode: Fuzz manual ABI parsing (#384)
trianglesphere May 5, 2022
a8a60ba
fix: DepositFeed.sol link
lucadonnoh May 6, 2022
46fa0d4
opnode: gossip blocks topic validator and subscriber
protolambda Apr 30, 2022
5ac7f92
opnode/l2: ExecutionPayload SSZ encoding/decoding
protolambda May 8, 2022
bdc831e
opnode/l2: check payload block hash consistency
protolambda May 8, 2022
67d5fcc
opnode/p2p,specs: update p2p block gossip validation
protolambda May 8, 2022
ffdbc0c
opnode: refactor node initialization, change l1-head fan out, impleme…
protolambda May 8, 2022
9d7b980
opnode/l2,opnode/rollup/driver: process incoming unsafe L2 blocks
protolambda May 8, 2022
7784b4c
specs/rollup-node-p2p: fix toc
protolambda May 8, 2022
e9f243f
opnode/p2p: compress published messages
protolambda May 8, 2022
b2ab7a6
specs/rollup-node-p2p: clarify hardfork version start
protolambda May 8, 2022
702169c
opnode/node: fix l1 head notify timeout bug
protolambda May 8, 2022
433c40d
opnode: fix receive p2p payload timeout bug, fix publishing buffer mi…
protolambda May 9, 2022
4559e19
opnode: fix/improve new loggers
protolambda May 9, 2022
a664cc2
opnode: fix p2p block distribution
protolambda May 9, 2022
bf06074
opnode/test: connect peers only after starting p2p application-layer …
protolambda May 9, 2022
832eab9
ops,opnode/p2p: fix opnode start up in devnet
protolambda May 9, 2022
83a45ea
opnode/l2: use common.Big0 instead of big.NewInt(0), thx mark
protolambda May 9, 2022
5189b9a
opnode: Add debug tracer to geth in e2e test (#418)
trianglesphere May 9, 2022
c3f5ec8
Update reference geth entrypoint with variable parameters
optimisticben May 9, 2022
36536fd
opnode: fix imports and code newlines style
protolambda May 9, 2022
f22c970
Merge pull request #422 from ethereum-optimism/ref-geth-entrypoint-pa…
optimisticben May 10, 2022
0fca724
opnode,specs: gossip blocks validation seen cache fixes
protolambda May 10, 2022
a069290
opnode/rollup/driver: no heuristics in driver, rely more on engine to…
protolambda May 10, 2022
4b5301e
opnode: tracer to watch node events during testing
protolambda May 10, 2022
b93c641
opnode,specs: clarify gossip params
protolambda May 10, 2022
20a0a57
opnode/l2/ssz: fix lousy copy range
protolambda May 10, 2022
c1ac678
opnode/rollup/driver/state: fix doc typo
protolambda May 10, 2022
b6dd9da
Merge pull request #394 from ethereum-optimism/gossip-blocks
protolambda May 10, 2022
5142a1e
Add version RPC (#432)
mslipper May 12, 2022
55db896
refactor: new messengers (#421)
smartcontracts May 12, 2022
a46e9b7
opnode: p2p RPC, fix static-peers
protolambda May 12, 2022
a817f76
StateViz: Visualize rollup state changes (#419)
Inphi May 12, 2022
e34ed09
contracts: add backup logic for deposits
smartcontracts May 11, 2022
86cc8fd
Merge pull request #428 from ethereum-optimism/sc/ct-deposit-backup
smartcontracts May 12, 2022
689400b
contracts: add base gas to sent messages
smartcontracts May 12, 2022
610a274
contracts: use clearer message encoding
smartcontracts May 12, 2022
012cb06
Merge pull request #434 from ethereum-optimism/sc/ct-min-gas
smartcontracts May 12, 2022
95857d4
contracts: add L1BlockNumber predeploy
smartcontracts May 12, 2022
5b692b5
Merge pull request #435 from ethereum-optimism/sc/l1-bn
smartcontracts May 12, 2022
e5c87e6
opnode: p2p rpc client bindings, test update, minor p2p flag update
protolambda May 12, 2022
d6f5182
opnode/p2p: set up connection notification before starting host B
protolambda May 12, 2022
283cc70
opnode/p2p: bundle p2p components into p2p node for separate testing
protolambda May 13, 2022
3ecf669
opnode/p2p: minor style fix + rename
protolambda May 13, 2022
a8243cb
opnode/p2p: add method to get peer info about self
protolambda May 13, 2022
81a15be
Fix SRI on stateviz (#440)
mslipper May 13, 2022
fb044a6
Fix L2 Output Timestamps (#416)
trianglesphere May 13, 2022
4170fcb
Merge pull request #433 from ethereum-optimism/p2p-api
protolambda May 13, 2022
92fccc2
opnode: Withdrawal E2E test in go (#423)
trianglesphere May 13, 2022
b37e658
Adopt go.work, rename modules to prep for monorepo (#441)
mslipper May 13, 2022
1188334
remove git submodules
mslipper May 15, 2022
b0119b2
optimistic-specs: monorepo merge, mv into protocol dir
mslipper May 15, 2022
d5b59b2
Merge optimistic-specs into monorepo
mslipper May 15, 2022
0e3f8fc
bedrock contracts dependencies
mslipper May 15, 2022
4550c3b
monorepo merge: fix Go env
mslipper May 15, 2022
61c6cda
monorepo merge: move contracts-bedrock into non-Lerna package
mslipper May 15, 2022
77c4939
monorepo merge: bring back CI
mslipper May 15, 2022
945c0e7
outline bedrock dirs, rm stale protocol repo files (#2562)
protolambda May 15, 2022
a609388
Merge remote-tracking branch 'upstream/develop' into bedrock
mslipper May 16, 2022
940cfac
monorepo merge: re-run yarn
mslipper May 16, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
152 changes: 152 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
version: 2.1

orbs:
node: circleci/node@5.0.2

executors:
go-builder:
docker:
Expand Down Expand Up @@ -307,10 +310,159 @@ jobs:
echo "$DOCKER_PASS" | docker login -u "$DOCKER_USERNAME" --password-stdin
docker push <<parameters.docker_tags>>

bedrock-markdown:
machine:
image: ubuntu-2004:202111-02
steps:
- checkout
- run:
name: markdown lint
command: |
docker run -v `pwd`:/workdir davidanson/markdownlint-cli2:0.4.0 "op-node/README.md" "./specs/**/*.md" "#**/node_modules"
- run:
name: link lint
command: |
docker run --init -it -v `pwd`:/input lycheeverse/lychee --verbose --no-progress --exclude-loopback --exclude twitter.com --exclude-mail /input/README.md "/input/specs/**/*.md" "/input/meta/**/*.md" "/input/op-node/**/*.md" || exit 0

bedrock-solidity:
docker:
- image: ethereumoptimism/js-builder:0.0.4
steps:
- checkout
- run:
name: init submodules
command: |
git submodule sync --recursive
git submodule update --recursive --init
- run:
name: install
command: yarn install
working_directory: contracts-bedrock
- run:
name: lint
command: |
# remove prettierrc in root of repo since it doesn't work with non-Lerna packages
mv ../.eslintrc.js ../.eslintrc.bak
yarn lint:check
mv ../.eslintrc.bak ../.eslintrc.js
working_directory: contracts-bedrock
- run:
name: slither
command: yarn slither || exit 0
working_directory: contracts-bedrock
- run:
name: build forge
command: yarn build:forge
working_directory: contracts-bedrock
- run:
name: test forge
command: yarn test:forge
working_directory: contracts-bedrock
- run:
name: gas snapshot
command: forge snapshot
working_directory: contracts-bedrock


bedrock-go-tests:
docker:
- image: ethereumoptimism/go-builder:latest
steps:
- checkout
- run:
name: lint op-node
command: |
golangci-lint run -E goimports,sqlclosecheck,bodyclose,asciicheck,misspell ./...
working_directory: op-node
- run:
name: lint op-proposer
command: |
golangci-lint run -E goimports,sqlclosecheck,bodyclose,asciicheck,misspell ./...
working_directory: op-proposer
- run:
name: lint op-batcher
command: |
golangci-lint run -E goimports,sqlclosecheck,bodyclose,asciicheck,misspell ./...
working_directory: op-batcher
- run:
name: lint op-e2e
command: |
golangci-lint run -E goimports,sqlclosecheck,bodyclose,asciicheck,misspell ./...
working_directory: op-e2e
- run:
name: prep results dir
command: mkdir -p /test-results
- run:
name: test op-node
command: |
gotestsum --junitfile /test-results/op-node.xml -- -coverpkg=github.com/ethereum-optimism/optimism/... -coverprofile=coverage.out -covermode=atomic ./...
working_directory: op-node
- run:
name: test op-proposer
command: |
gotestsum --junitfile /test-results/op-proposer.xml -- -coverpkg=github.com/ethereum-optimism/optimism/... -coverprofile=coverage.out -covermode=atomic ./...
working_directory: op-proposer
- run:
name: test op-batcher
command: |
gotestsum --junitfile /test-results/op-batcher.xml -- -coverpkg=github.com/ethereum-optimism/optimism/... -coverprofile=coverage.out -covermode=atomic ./...
working_directory: op-batcher
- run:
name: test op-e2e
command: |
gotestsum --junitfile /test-results/op-e2e.xml -- -coverpkg=github.com/ethereum-optimism/optimism/... -coverprofile=coverage.out -covermode=atomic ./...
working_directory: op-e2e
- store_test_results:
path: /test-results

fuzz-op-node:
docker:
- image: ethereumoptimism/go-builder:latest
steps:
- checkout
- run:
name: Fuzz
command: make fuzz
working_directory: op-node

bedrock-integration-tests:
machine:
image: ubuntu-2004:202111-02
docker_layer_caching: true
steps:
- checkout
- run:
name: init submodules
command: |
git submodule sync --recursive
git submodule update --recursive --init
- node/install:
install-yarn: true
node-version: '16.13'
- run:
name: install Foundry
command: |
curl -L https://foundry.paradigm.xyz | bash
source /home/circleci/.bashrc
foundryup
- run:
name: build typescript
command: make build-ts
- run:
name: start devnet
command: make devnet-up
- run:
name: run itests
command: make test-integration

workflows:
main:
jobs:
- yarn-monorepo
- bedrock-go-tests
- bedrock-solidity
- bedrock-markdown
- fuzz-op-node
- go-lint-test-build:
name: batch-submitter-tests
binary_name: batch-submitter
Expand Down
12 changes: 12 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ temp
coverage.json
*.tsbuildinfo

yarn-error.log

dist
artifacts
cache
Expand All @@ -19,10 +21,20 @@ packages/contracts/hardhat*

packages/data-transport-layer/db

packages/integration-tests-bedrock/cache
packages/integration-tests-bedrock/artifacts

# vim
*.sw*

.env
.env*
!.env.example
*.log

.devnet

# Ignore local fuzzing results
**/testdata/fuzz/

coverage.out
9 changes: 9 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
[submodule "tests"]
path = l2geth/tests/testdata
url = https://github.com/ethereum/tests
[submodule "packages/contracts-bedrock/lib/forge-std"]
path = contracts-bedrock/lib/forge-std
url = https://github.com/foundry-rs/forge-std.git
[submodule "packages/contracts-bedrock/lib/solmate"]
path = contracts-bedrock/lib/solmate
url = https://github.com/rari-capital/solmate.git
[submodule "packages/contracts-bedrock/lib/ds-test"]
path = contracts-bedrock/lib/ds-test
url = https://github.com/dapphub/ds-test.git
12 changes: 12 additions & 0 deletions .markdownlint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"line_length": {
"line_length": 120,
"strict": false,
"stern": true,
"code_blocks": false,
"tables": false,
},
"no-blanks-blockquote": false,
"single-title": false,
"no-emphasis-as-heading": false,
}
76 changes: 76 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
COMPOSEFLAGS=-d
ITESTS_L2_HOST=http://localhost:9545

build: build-go contracts integration-tests
.PHONY: build

build-go: submodules op-node op-proposer op-batcher
.PHONY: build-go

build-ts: submodules contracts integration-tests
.PHONY: build-ts

submodules:
# CI will checkout submodules on its own (and fails on these commands)
if [ -z "$$GITHUB_ENV" ]; then \
git submodule init; \
git submodule update; \
fi
.PHONY: submodules

op-node:
make -C ./op-node op-node
.PHONY: op-node

op-batcher:
make -C ./op-batcher op-batcher
.PHONY: op-batcher

op-proposer:
make -C ./op-proposer op-proposer
.PHONY: op-proposer

contracts:
cd ./contracts-bedrock && yarn install && yarn build
.PHONY: contracts

integration-tests:
cd ./packages/integration-tests-bedrock && yarn install && yarn build:contracts
.PHONY: integration-tests

clean:
rm -rf ./bin
.PHONY: clean

devnet-up:
@bash ./ops-bedrock/devnet-up.sh
.PHONY: devnet-up

devnet-down:
@(cd ./ops-bedrock && GENESIS_TIMESTAMP=$(shell date +%s) docker-compose stop)
.PHONY: devnet-down

devnet-clean:
rm -rf ./contracts-bedrock/deployments/devnetL1
rm -rf ./.devnet
cd ./ops-bedrock && docker-compose down
docker volume rm ops_l1_data
docker volume rm ops_l2_data
.PHONY: devnet-clean

test-unit:
make -C ./op-node test
make -C ./op-proposer test
make -C ./op-batcher test
make -C ./op-e2e test
cd ./contracts-bedrock && yarn test
.PHONY: test-unit

test-integration:
bash ./ops-bedrock/test-integration.sh \
./contracts-bedrock/deployments/devnetL1
.PHONY: test-integration

devnet-genesis:
bash ./ops-bedrock/devnet-genesis.sh
.PHONY: devnet-genesis
37 changes: 27 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,21 +31,38 @@ Then check out our list of [good first issues](https://github.com/ethereum-optim
<pre>
root
├── <a href="./packages">packages</a>
│ ├── <a href="./packages/common-ts">common-ts</a>: Common tools for building apps in TypeScript
│ ├── <a href="./packages/contracts">contracts</a>: L1 and L2 smart contracts for Optimism
│ ├── <a href="./packages/core-utils">core-utils</a>: Low-level utilities that make building Optimism easier
│ ├── <a href="./packages/common-ts">common-ts</a>: Common tools for building apps in TypeScript
│ ├── <a href="./packages/data-transport-layer">data-transport-layer</a>: Service for indexing Optimism-related L1 data
│ ├── <a href="./packages/fault-detector">fault-detector</a>: Service for detecting faulty L2 output proposals
│ ├── <a href="./packages/fault-detector">fault-detector</a>:
│ ├── <a href="./packages/integration-tests-bedrock">integration-tests-bedrock</a> (BEDROCK upgrade): Bedrock integration tests.
│ ├── <a href="./packages/message-relayer">message-relayer</a>: Tool for automatically relaying L1<>L2 messages in development
│ └── <a href="./packages/replica-healthcheck">replica-healthcheck</a>: Service for monitoring the health of a replica node
├── <a href="./go">go</a>
│ ├── <a href="./batch-submitter">batch-submitter</a>: Service for submitting batches of transactions and results to L1
│ ├── <a href="./bss-core">bss-core</a>: Core batch-submitter logic and utilities
│ ├── <a href="./gas-oracle">gas-oracle</a>: Service for updating L1 gas prices on L2
│ └── <a href="./proxyd">proxyd</a>: Configurable RPC request router and proxy
├── <a href="./l2geth">l2geth</a>: Optimism client software, a fork of <a href="https://github.com/ethereum/go-ethereum/tree/v1.9.10">geth v1.9.10</a>
│ ├── <a href="./packages/replica-healthcheck">replica-healthcheck</a>: Service for monitoring the health of a replica node
│ └── <a href="./packages/sdk">sdk</a>: provides a set of tools for interacting with Optimism

~~ Production ~~
├── <a href="./batch-submitter">batch-submitter</a>: Service for submitting batches of transactions and results to L1
├── <a href="./bss-core">bss-core</a>: Core batch-submitter logic and utilities
├── <a href="./gas-oracle">gas-oracle</a>: Service for updating L1 gas prices on L2
├── <a href="./indexer">indexer</a>: indexes and syncs transactions
├── <a href="./infra/op-replica">infra/op-replica</a>: Deployment examples and resources for running an Optimism replica
├── <a href="./integration-tests">integration-tests</a>: Various integration tests for the Optimism network
└── <a href="./ops">ops</a>: Tools for running Optimism nodes and networks
├── <a href="./l2geth">l2geth</a>: Optimism client software, a fork of <a href="https://github.com/ethereum/go-ethereum/tree/v1.9.10">geth v1.9.10</a> (deprecated for BEDROCK upgrade)
├── <a href="./l2geth-exporter">l2geth-exporter</a>: A prometheus exporter to collect/serve metrics from an L2 geth node
├── <a href="./op-exporter">op-exporter</a>: A prometheus exporter to collect/serve metrics from an Optimism node
├── <a href="./proxyd">proxyd</a>: Configurable RPC request router and proxy
├── <a href="./technical-documents">technical-documents</a>: audits and post-mortem documents
├── <a href="./teleportr">teleportr</a>: Bridge for teleporting ETH between L1 and L2 at low cost

~~ BEDROCK upgrade - Not production-ready yet, part of next major upgrade ~~
├── <a href="./contracts-bedrock">contracts-bedrock</a>: Bedrock smart contracts. To be merged with ./packages/contracts.
├── <a href="./op-batcher">op-batcher</a>: L2-Batch Submitter, submits bundles of batches to L1
├── <a href="./op-e2e">op-e2e</a>: End-to-End testing of all bedrock components in Go
├── <a href="./op-node">op-node</a>: rollup consensus-layer client.
├── <a href="./op-proposer">op-proposer</a>: L2-Output Submitter, submits proposals to L1
├── <a href="./ops-bedrock">ops-bedrock</a>: Bedrock devnet work
└── <a href="./specs">specs</a>: Specs of the rollup starting at the Bedrock upgrade
</pre>

## Branching Model and Releases
Expand Down
Loading