Skip to content
This repository has been archived by the owner on Dec 5, 2021. It is now read-only.

[pull] develop from ethereum-optimism:develop #74

Merged
merged 56 commits into from
Jun 18, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
d168005
chore: reduce hardhat timeout to 20 seconds (#968)
maurelian May 28, 2021
245136f
fix: force LF line endings for scripts to avoid docker problems on Wi…
smartcontracts May 28, 2021
4e03f8a
feat: add hardhat deploy instructions to readme (#965)
karlfloersch May 29, 2021
a64f816
feat: fees v2 (#976)
tynes May 29, 2021
11a9296
Add static analysis action (#848)
elenadimitrova May 31, 2021
5a79849
build(deps): bump ws from 7.4.4 to 7.4.6 in /ops/docker/hardhat (#987)
dependabot[bot] May 31, 2021
86708bb
feat[message-relayer]: relay tx generator (#952)
smartcontracts Jun 1, 2021
1293825
backwards compatible dtl syncing (#986)
tynes Jun 1, 2021
5e3c5d1
fix[smock]: fix broken call assertions for overloaded functions (#996)
smartcontracts Jun 2, 2021
064c03a
fix[message-relayer]: remove spreadsheet mode (#998)
smartcontracts Jun 2, 2021
8082d16
Lower local rollup timestamp refresh (#985)
K-Ho Jun 2, 2021
c2b6e14
feat: fees v3 (#999)
tynes Jun 2, 2021
750a502
fix: remove dead coders (#1001)
tynes Jun 2, 2021
9d39121
docs[message-relayer]: add a README and improve the interface for gen…
smartcontracts Jun 2, 2021
e52ccd9
dtl: log error stack for failed http request (#995)
tynes Jun 2, 2021
a02392b
Add rpc-proxy service for whitelisting JSON RPC methods to the sequen…
optimisticben Jun 2, 2021
8e2bfd0
feat: deployment config for fee oracle contract (#936)
karlfloersch Jun 2, 2021
b355be0
ops: expose debug namespace (#1007)
tynes Jun 2, 2021
5e4eaea
fix(sync-service): prevent underflows (#1015)
gakonst Jun 3, 2021
d2ad599
test: remove duplicate value in array (#1014)
snario Jun 3, 2021
1c1e405
ci: tag docker image for canary with abbreviated GITHUB_SHA (#1006)
snario Jun 3, 2021
55ee461
refactor: improve logging for transactions being submitted to chain w…
snario Jun 3, 2021
ed9fc79
ci: upload logs for failed integration tests (#1020)
snario Jun 4, 2021
8ac4c74
fix(dtl): improve slow blocking JSON parsing that occurs during l2 sy…
timmyers Jun 4, 2021
e3dc90c
fix: lint errors in dtl (#1025)
karlfloersch Jun 6, 2021
a75f05b
fix[dtl]: fix dtl bug breaking verifiers (#1011)
smartcontracts Jun 7, 2021
cb4a928
fix: deterministic blockhashes (#1032)
tynes Jun 8, 2021
0cbaa9a
Version Packages (#978)
github-actions[bot] Jun 8, 2021
958477b
ci: add sync test's own workflow (#1031)
annieke Jun 8, 2021
1b69241
fix(dtl): incorrect parsing of eth_getBlockRange result (#1037)
timmyers Jun 8, 2021
0c18e19
Version Packages (#1045)
github-actions[bot] Jun 8, 2021
859437f
build(deps): bump glob-parent from 5.1.1 to 5.1.2 (#1036)
dependabot[bot] Jun 9, 2021
989a302
l2geth: optimize loops (#1027)
tynes Jun 9, 2021
c451060
Enable custom tagging of release docker image (#1048)
snario Jun 9, 2021
f03bb3e
ci: fix indentation issue of canary workflow
snario Jun 9, 2021
85d5ce1
ci: fix typo with GITHUB_SHA
snario Jun 9, 2021
cc74271
fix: typo in USE_HARDHAT config (#1023)
karlfloersch Jun 9, 2021
cc6c7f0
l2geth: bump to go 1.15 (#1058)
tynes Jun 10, 2021
98b7839
Change monotonicity band-aid code to log warnings not errors (#1060)
snario Jun 10, 2021
baa3b76
Ensure Sentry is correctly set up for DTL and MR (#1054)
snario Jun 11, 2021
85362d4
Add more logging information to monotonicity violation logs (#1066)
snario Jun 11, 2021
c520100
fix: monotonicity auto healer (#1070)
karlfloersch Jun 11, 2021
e389ba1
Version Packages (#1053)
github-actions[bot] Jun 11, 2021
6d7b12b
fix: comment out codeowners (#1073)
smartcontracts Jun 13, 2021
f409ce7
fix[l2geth]: off-by-one sometimes breaking replica sync (#1082)
smartcontracts Jun 14, 2021
d9fd67d
fix(l2geth): Log 'end of OVM execution' correctly (#1080)
maurelian Jun 14, 2021
7cce55a
fix[bs]: disambiguate generic submission errors (#1051)
annieke Jun 15, 2021
2378711
Version Packages (#1089)
github-actions[bot] Jun 15, 2021
1424370
fix: use -z flag for var unset in canary
snario Jun 15, 2021
c87e4c7
Use Eslint instead of Tslint (#1005)
rajivpo Jun 15, 2021
52d02b1
metrics[batch-submitter]: add new batch submitter metrics (#1074)
annieke Jun 15, 2021
aba77c0
feat[ci]: upload logs for sync tests if failure (#1098)
annieke Jun 15, 2021
0b91df4
fix[dtl]: defend against RPC provider missing events (#1084)
smartcontracts Jun 16, 2021
b74b052
maintenance[monorepo]: first pass update to README (#1106)
smartcontracts Jun 16, 2021
5c89c45
Move the metric prefix string to a label (#1047)
optimisticben Jun 17, 2021
71349a4
fix[smock]: add support for hardhat 2.4.0 (#1112)
smartcontracts Jun 17, 2021
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
5 changes: 5 additions & 0 deletions .changeset/brown-boxes-compete.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@eth-optimism/data-transport-layer': patch
---

Adds additional code into the DTL to defend against situations where an RPC provider might be missing an event.
5 changes: 5 additions & 0 deletions .changeset/calm-fans-travel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@eth-optimism/contracts': patch
---

Migrated from tslint to eslint. The preference for lint exceptions is as follows: line level, block level, file level, package level.
5 changes: 0 additions & 5 deletions .changeset/chilled-books-grab.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/dull-fishes-type.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/neat-melons-lie.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/nervous-bobcats-grow.md

This file was deleted.

5 changes: 5 additions & 0 deletions .changeset/nice-terms-walk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@eth-optimism/smock': patch
---

Minor smock patch to add support for hardhat 2.4.0 and up
5 changes: 5 additions & 0 deletions .changeset/olive-planets-clean.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@eth-optimism/batch-submitter': patch
---

Add failure metrics to batch submitter
7 changes: 7 additions & 0 deletions .changeset/sour-adults-worry.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@eth-optimism/batch-submitter': patch
'@eth-optimism/common-ts': patch
'@eth-optimism/data-transport-layer': patch
---

Move the metric prefix string to a label #1047
5 changes: 0 additions & 5 deletions .changeset/unlucky-shoes-bake.md

This file was deleted.

186 changes: 186 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
module.exports = {
"env": {
"browser": true,
"es6": true
},
"extends": [
"prettier",
],
"ignorePatterns": ["dist/**/*.ts"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": "tsconfig.json",
"sourceType": "module"
},
"plugins": [
"eslint-plugin-import",
"eslint-plugin-unicorn",
"eslint-plugin-jsdoc",
"eslint-plugin-prefer-arrow",
"eslint-plugin-react",
"@typescript-eslint",
],
"rules": {
"@typescript-eslint/adjacent-overload-signatures": "error",
"@typescript-eslint/array-type": "off",
"@typescript-eslint/ban-types": "off",
"@typescript-eslint/consistent-type-assertions": "error",
"@typescript-eslint/dot-notation": "off",
"@typescript-eslint/indent": "off",
"@typescript-eslint/member-delimiter-style": [
"off",
{
"multiline": {
"delimiter": "none",
"requireLast": true
},
"singleline": {
"delimiter": "semi",
"requireLast": false
}
}
],
"@typescript-eslint/member-ordering": "off",
"@typescript-eslint/naming-convention": "off",
"@typescript-eslint/no-empty-function": "error",
"@typescript-eslint/no-empty-interface": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-misused-new": "error",
"@typescript-eslint/no-namespace": "error",
"@typescript-eslint/no-parameter-properties": "off",
"@typescript-eslint/no-shadow": [
"error",
{
"hoist": "all"
}
],
"@typescript-eslint/no-this-alias": "error",
"@typescript-eslint/no-unused-expressions": "off",
"@typescript-eslint/no-use-before-define": "off",
"@typescript-eslint/no-var-requires": "error",
"@typescript-eslint/prefer-for-of": "error",
"@typescript-eslint/prefer-function-type": "error",
"@typescript-eslint/prefer-namespace-keyword": "error",
"@typescript-eslint/quotes": "off",
"@typescript-eslint/semi": [
"off",
null
],
"@typescript-eslint/triple-slash-reference": [
"error",
{
"path": "always",
"types": "prefer-import",
"lib": "always"
}
],
"@typescript-eslint/type-annotation-spacing": "off",
"@typescript-eslint/unified-signatures": "error",
"arrow-parens": [
"off",
"always"
],
"brace-style": [
"off",
"off"
],
"comma-dangle": "off",
"complexity": "off",
"constructor-super": "error",
"curly": "error",
"dot-notation": "off",
"eol-last": "off",
"eqeqeq": [
"error",
"smart"
],
"guard-for-in": "error",
"id-blacklist": "off",
"id-match": "off",
"import/no-extraneous-dependencies": [
"error"
],
"import/no-internal-modules": "off",
"import/order": "off",
"indent": "off",
"jsdoc/check-alignment": "error",
"jsdoc/check-indentation": "error",
"jsdoc/newline-after-description": "error",
"linebreak-style": "off",
"max-classes-per-file": "off",
"max-len": "off",
"new-parens": "off",
"newline-per-chained-call": "off",
"no-bitwise": "off",
"no-caller": "error",
"no-cond-assign": "error",
"no-console": "off",
"no-debugger": "error",
"no-duplicate-case": "error",
"no-duplicate-imports": "error",
"no-empty": "error",
"no-eval": "error",
"no-extra-bind": "error",
"no-extra-semi": "off",
"no-fallthrough": "off",
"no-invalid-this": "off",
"no-irregular-whitespace": "off",
"no-multiple-empty-lines": "off",
"no-new-func": "error",
"no-new-wrappers": "error",
"no-redeclare": "error",
"no-return-await": "error",
"no-sequences": "error",
"no-sparse-arrays": "error",
"no-template-curly-in-string": "error",
"no-throw-literal": "error",
"no-trailing-spaces": "off",
"no-undef-init": "error",
"no-underscore-dangle": "off",
"no-unsafe-finally": "error",
"no-unused-expressions": "off",
"no-unused-labels": "error",
"no-use-before-define": "off",
"no-var": "error",
"object-shorthand": "error",
"one-var": [
"error",
"never"
],
"padded-blocks": [
"off",
{
"blocks": "never"
},
{
"allowSingleLineBlocks": true
}
],
"prefer-arrow/prefer-arrow-functions": "error",
"prefer-const": "error",
"prefer-object-spread": "error",
"quote-props": "off",
"quotes": "off",
"radix": "error",
"react/jsx-curly-spacing": "off",
"react/jsx-equals-spacing": "off",
"react/jsx-tag-spacing": [
"off",
{
"afterOpening": "allow",
"closingSlash": "allow"
}
],
"react/jsx-wrap-multilines": "off",
"semi": "off",
"space-before-blocks": "error",
"space-before-function-paren": "off",
"space-in-parens": [
"off",
"never"
],
"unicorn/prefer-ternary": "off",
"use-isnan": "error",
"valid-typeof": "off"
}
};
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.sh text eol=lf
32 changes: 18 additions & 14 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
l2geth/ @smartcontracts @tynes @karlfloersch
packages/specs/l2geth/ @smartcontracts @tynes @karlfloersch
packages/contracts/ @smartcontracts @ben-chain @maurelian @elenadimitrova
packages/specs/protocol/ @smartcontracts @ben-chain @maurelian
ops/ @tynes @karlfloersch
packages/hardhat-ovm/ @smartcontracts
packages/smock/ @smartcontracts @maurelian
packages/core-utils/ @smartcontracts @annieke @ben-chain
packages/common-ts/ @annieke
packages/core-utils/src/watcher.ts @K-Ho
packages/message-relayer/ @K-Ho
packages/batch-submitter/ @annieke @karlfloersch
packages/data-transport-layer/ @annieke
integration-tests/ @tynes
# CODEOWNERS can be disruptive because it automatically requests review from individuals across the
# board. We still like to use this file to track who's working on what, but all lines are commented
# out so that GitHub won't trigger review requests.

# l2geth/ @smartcontracts @tynes @karlfloersch
# packages/specs/l2geth/ @smartcontracts @tynes @karlfloersch
# packages/contracts/ @smartcontracts @ben-chain @maurelian @elenadimitrova
# packages/specs/protocol/ @smartcontracts @ben-chain @maurelian
# ops/ @tynes @karlfloersch
# packages/hardhat-ovm/ @smartcontracts
# packages/smock/ @smartcontracts @maurelian
# packages/core-utils/ @smartcontracts @annieke @ben-chain
# packages/common-ts/ @annieke
# packages/core-utils/src/watcher.ts @K-Ho
# packages/message-relayer/ @K-Ho
# packages/batch-submitter/ @annieke @karlfloersch
# packages/data-transport-layer/ @annieke
# integration-tests/ @tynes
18 changes: 18 additions & 0 deletions .github/workflows/integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,3 +93,21 @@ jobs:
yarn compile
yarn compile:ovm
yarn test:integration:ovm

- name: Collect docker logs on failure
if: failure()
uses: jwalton/gh-docker-logs@v1
with:
images: 'ethereumoptimism/builder,ethereumoptimism/hardhat,ethereumoptimism/deployer,ethereumoptimism/data-transport-layer,ethereumoptimism/l2geth,ethereumoptimism/message-relayer,ethereumoptimism/batch-submitter,ethereumoptimism/l2geth,ethereumoptimism/integration-tests'
dest: './logs'

- name: Tar logs
if: failure()
run: tar cvzf ./logs.tgz ./logs

- name: Upload logs to GitHub
if: failure()
uses: actions/upload-artifact@master
with:
name: logs.tgz
path: ./logs.tgz
31 changes: 24 additions & 7 deletions .github/workflows/publish-canary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@ name: Publish Packages (canary)

on:
# enable users to manually trigger with workflow_dispatch
workflow_dispatch: {}
workflow_dispatch:
inputs:
customImageName:
description: 'Custom Docker Image Tag (keep empty for git hash)'
required: false
default: '0.0.0-rc-0'

jobs:
canary-publish:
Expand Down Expand Up @@ -66,6 +71,18 @@ jobs:
run: |
node ops/scripts/ci-versions.js ${{ toJSON(steps.changesets.outputs.publishedPackages) }}

- name: Docker Image Name
id: docker_image_name
run: |
if [ -z "${CUSTOM_IMAGE_NAME}" ]
then
echo "::set-output name=canary-docker-tag::${GITHUB_SHA::8}"
else
echo "::set-output name=canary-docker-tag::prerelease-${CUSTOM_IMAGE_NAME}"
fi
env:
CUSTOM_IMAGE_NAME: ${{ github.event.inputs.customImageName }}


# The below code is duplicated, would be ideal if we could use a matrix with a
# key/value being dynamically generated from the `publishedPackages` output
Expand Down Expand Up @@ -95,7 +112,7 @@ jobs:
context: .
file: ./ops/docker/Dockerfile.geth
push: true
tags: ethereumoptimism/l2geth:${{ needs.canary-publish.outputs.l2geth }}
tags: ethereumoptimism/l2geth:${{ steps.docker_image_name.outputs.canary-docker-tag }}

# pushes the base builder image to dockerhub
builder:
Expand Down Expand Up @@ -155,7 +172,7 @@ jobs:
context: .
file: ./ops/docker/Dockerfile.message-relayer
push: true
tags: ethereumoptimism/message-relayer:${{ needs.builder.outputs.message-relayer }}
tags: ethereumoptimism/message-relayer:${{ steps.docker_image_name.outputs.canary-docker-tag }}

batch-submitter:
name: Publish Batch Submitter Version ${{ needs.builder.outputs.batch-submitter }}
Expand All @@ -181,7 +198,7 @@ jobs:
context: .
file: ./ops/docker/Dockerfile.batch-submitter
push: true
tags: ethereumoptimism/batch-submitter:${{ needs.builder.outputs.batch-submitter }}
tags: ethereumoptimism/batch-submitter:${{ steps.docker_image_name.outputs.canary-docker-tag }}

data-transport-layer:
name: Publish Data Transport Layer Version ${{ needs.builder.outputs.data-transport-layer }}
Expand All @@ -207,7 +224,7 @@ jobs:
context: .
file: ./ops/docker/Dockerfile.data-transport-layer
push: true
tags: ethereumoptimism/data-transport-layer:${{ needs.builder.outputs.data-transport-layer }}
tags: ethereumoptimism/data-transport-layer:${{ steps.docker_image_name.outputs.canary-docker-tag }}

contracts:
name: Publish Deployer Version ${{ needs.builder.outputs.contracts }}
Expand All @@ -233,7 +250,7 @@ jobs:
context: .
file: ./ops/docker/Dockerfile.deployer
push: true
tags: ethereumoptimism/deployer:${{ needs.builder.outputs.contracts }}
tags: ethereumoptimism/deployer:${{ steps.docker_image_name.outputs.canary-docker-tag }}

integration_tests:
name: Publish Integration tests ${{ needs.builder.outputs.integration-tests }}
Expand All @@ -259,4 +276,4 @@ jobs:
context: .
file: ./ops/docker/Dockerfile.integration-tests
push: true
tags: ethereumoptimism/integration-tests:${{ needs.builder.outputs.integration-tests }}
tags: ethereumoptimism/integration-tests:${{ steps.docker_image_name.outputs.canary-docker-tag }}
Loading