Conversation
🦋 Changeset detectedLatest commit: 8e6d978 The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Codecov Report
@@ Coverage Diff @@
## develop #986 +/- ##
========================================
Coverage 82.21% 82.21%
========================================
Files 48 48
Lines 1895 1895
Branches 303 303
========================================
Hits 1558 1558
Misses 337 337 Continue to review full report at Codecov.
|
smartcontracts
left a comment
There was a problem hiding this comment.
Assuming this correctly syncs mainnet I think it's good to go.
| } | ||
| } | ||
|
|
||
| function stringify(entry) { |
There was a problem hiding this comment.
This could probably be made cleaner but we're planning to do a major overhaul of this stuff anyway so this is fine IMO.
* chore: reduce hardhat timeout to 20 seconds (ethereum-optimism#968) * fix: force LF line endings for scripts to avoid docker problems on Windows (ethereum-optimism#974) * fix: use correct line endings for windows * chore: add changeset * feat: add hardhat deploy instructions to readme (ethereum-optimism#965) * feat: add deployment instructions to readme * Add changeset * fix style * Update README.md * feat: fees v2 (ethereum-optimism#976) * l2 geth: new fee logic * l2 geth: migrate to fees package * core-utils: new fee scheme * chore: add changeset * l2geth: delete dead code * integration-tests: fix typo * integration-tests: fixes * fees: use fee scalar * lint: fix * rollup: correct gas payment comparison * fix(integration-tests): do not hardcode gas price * core-utils: update with new scheme * l2geth: refactor rollup oracle * l2geth: clean up DoEstimateGas * l2geth: implement latest scheme * tests: fix up * lint: fix * l2geth: better sycn service test * optimism: rename to TxGasLimit * fee: fix docstring * tests: fix * variables: rename * l2geth: prevent users from sending txs with too high of a fee * integration-tests: fix import * integration-tests: fix type * integration-tests: fix gas limits * lint: fix * l2geth: log error Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * Add static analysis action (ethereum-optimism#848) * Add static analysis github action setup python and install slither * Add nvmrc file for setting node to v14.17 * Update slither command run to link missing contract packages from monorepo root * Add steps for installing dependencies * Add yarn build step to github action * Enable colour in github action for static analysis * Disable certain detectors * Ensure slither does not fail build * Add instructions on running static analysis to monorepo readme * build(deps): bump ws from 7.4.4 to 7.4.6 in /ops/docker/hardhat (ethereum-optimism#987) Bumps [ws](https://github.com/websockets/ws) from 7.4.4 to 7.4.6. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](websockets/ws@7.4.4...7.4.6) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build and publish latest images * enable latest tag * feat[message-relayer]: relay tx generator (ethereum-optimism#952) * feat[message-relayer]: relay tx generator * whoops, I burned our infura key * fix minor bug * add comments * add more comments and clean stuff up * add empty test descriptions * add tests * move smock to dev deps * chore: add changeset * minor cleanup to merkle tree proof function * use bignumber math to avoid nested await * use a better interface * minor fixes and simplifications * backwards compatible dtl syncing (ethereum-optimism#986) * kovan: fix attempt * kovan: db fix * kovan: types are strings from db * l2geth: parse things as strings * chore: add changeset * dtl: also stringify the range query * geth: dereference * geth: assign err * dtl: handle null * dtl: fix unit tests * fix[smock]: fix broken call assertions for overloaded functions (ethereum-optimism#996) * fix[smock]: fix broken call assertions for overloaded functions * chore: add changeset * minor correction and add a test * add a test for non-overloaded functions * fix[message-relayer]: remove spreadsheet mode (ethereum-optimism#998) * fix[message-relayer]: remove spreadsheet mode * chore: add changeset * Lower local rollup timestamp refresh (ethereum-optimism#985) * update rollup timestamp refresh * increase refresh time to 5s * feat: fees v3 (ethereum-optimism#999) * core-utils: fee impl v3 * l2geth: fees v3 impl * integration-tests: update for fees v3 * chore: add changeset * fix: typo * integration-tests: fix and generalize * fees: update fee scalar * l2geth: check gas in the mempool behind usingovm * tests: fix up * l2geth: remove dead var * truffle: fix config * fix: remove dead coders (ethereum-optimism#1001) * chore: delete dead coders * chore: add changeset * dtl: remove dead imports * core-utils: delete dead tests * batch-submitter: remove txtype * chore: add changeset * docs[message-relayer]: add a README and improve the interface for generating proofs (ethereum-optimism#1002) * docs[message-relayer]: add basic docs and clean up an interface * chore: add changeset * dtl: log error stack for failed http request (ethereum-optimism#995) * dtl: log error stack for failed http request * chore: add changeset * Add rpc-proxy service for whitelisting JSON RPC methods to the sequencer. (ethereum-optimism#945) * Add healthcheck endpoint for rpc-proxy Added ethereum-nginx-proxy source updated README and docker image build * Check ETH_CALLS_ALLOWED is set, clean up comments, remove old Dockerfile * feat: deployment config for fee oracle contract (ethereum-optimism#936) * feat[contracts]: add GasPriceOracle w/o predeploy Based on ethereum-optimism#912 * feat[contracts]: congestion price oracle * chore: add changeset * contracts: gas price oracle (ethereum-optimism#917) * contracts: gas price oracle * tests: update * fees: fix tests * contracts: simplify gas price oracle * lint: fix * test: execution price is at the 1st storage slot * chore: rename predeploy to GasPriceOracle * chore: rename gas price oracle test name Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * Add an L2 deploy script for gas oracle contract * Add a kovan deployment artifact * Add deployment to readme * Add extra validation & initial execution price * Update README.md * Fix execution price logic * Perform new deployment with final contract * contracts: better require in ovm gas price oracle * Deploy L2GasPriceOracle * Update contract to use new fee logic & rename to gas * Deploy updated contract * Fix lint * gas price oracle: do not restrict gas price * gas price oracle: new deployment * tests: delete dead test Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * ops: expose debug namespace (ethereum-optimism#1007) Co-authored-by: Maurelian <maurelian@protonmail.ch> Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Karl Floersch <karl@karlfloersch.com> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> Co-authored-by: Elena Gesheva <elena@arenabg.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Kevin Ho <kevinjho1996@gmail.com> Co-authored-by: Ben Wilson <82120899+optimisticben@users.noreply.github.com>
* chore: reduce hardhat timeout to 20 seconds (ethereum-optimism#968) * fix: force LF line endings for scripts to avoid docker problems on Windows (ethereum-optimism#974) * fix: use correct line endings for windows * chore: add changeset * feat: add hardhat deploy instructions to readme (ethereum-optimism#965) * feat: add deployment instructions to readme * Add changeset * fix style * Update README.md * feat: fees v2 (ethereum-optimism#976) * l2 geth: new fee logic * l2 geth: migrate to fees package * core-utils: new fee scheme * chore: add changeset * l2geth: delete dead code * integration-tests: fix typo * integration-tests: fixes * fees: use fee scalar * lint: fix * rollup: correct gas payment comparison * fix(integration-tests): do not hardcode gas price * core-utils: update with new scheme * l2geth: refactor rollup oracle * l2geth: clean up DoEstimateGas * l2geth: implement latest scheme * tests: fix up * lint: fix * l2geth: better sycn service test * optimism: rename to TxGasLimit * fee: fix docstring * tests: fix * variables: rename * l2geth: prevent users from sending txs with too high of a fee * integration-tests: fix import * integration-tests: fix type * integration-tests: fix gas limits * lint: fix * l2geth: log error Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * Add static analysis action (ethereum-optimism#848) * Add static analysis github action setup python and install slither * Add nvmrc file for setting node to v14.17 * Update slither command run to link missing contract packages from monorepo root * Add steps for installing dependencies * Add yarn build step to github action * Enable colour in github action for static analysis * Disable certain detectors * Ensure slither does not fail build * Add instructions on running static analysis to monorepo readme * build(deps): bump ws from 7.4.4 to 7.4.6 in /ops/docker/hardhat (ethereum-optimism#987) Bumps [ws](https://github.com/websockets/ws) from 7.4.4 to 7.4.6. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](websockets/ws@7.4.4...7.4.6) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat[message-relayer]: relay tx generator (ethereum-optimism#952) * feat[message-relayer]: relay tx generator * whoops, I burned our infura key * fix minor bug * add comments * add more comments and clean stuff up * add empty test descriptions * add tests * move smock to dev deps * chore: add changeset * minor cleanup to merkle tree proof function * use bignumber math to avoid nested await * use a better interface * minor fixes and simplifications * backwards compatible dtl syncing (ethereum-optimism#986) * kovan: fix attempt * kovan: db fix * kovan: types are strings from db * l2geth: parse things as strings * chore: add changeset * dtl: also stringify the range query * geth: dereference * geth: assign err * dtl: handle null * dtl: fix unit tests * fix[smock]: fix broken call assertions for overloaded functions (ethereum-optimism#996) * fix[smock]: fix broken call assertions for overloaded functions * chore: add changeset * minor correction and add a test * add a test for non-overloaded functions * fix[message-relayer]: remove spreadsheet mode (ethereum-optimism#998) * fix[message-relayer]: remove spreadsheet mode * chore: add changeset * Lower local rollup timestamp refresh (ethereum-optimism#985) * update rollup timestamp refresh * increase refresh time to 5s * feat: fees v3 (ethereum-optimism#999) * core-utils: fee impl v3 * l2geth: fees v3 impl * integration-tests: update for fees v3 * chore: add changeset * fix: typo * integration-tests: fix and generalize * fees: update fee scalar * l2geth: check gas in the mempool behind usingovm * tests: fix up * l2geth: remove dead var * truffle: fix config * fix: remove dead coders (ethereum-optimism#1001) * chore: delete dead coders * chore: add changeset * dtl: remove dead imports * core-utils: delete dead tests * batch-submitter: remove txtype * chore: add changeset * docs[message-relayer]: add a README and improve the interface for generating proofs (ethereum-optimism#1002) * docs[message-relayer]: add basic docs and clean up an interface * chore: add changeset * dtl: log error stack for failed http request (ethereum-optimism#995) * dtl: log error stack for failed http request * chore: add changeset * Add rpc-proxy service for whitelisting JSON RPC methods to the sequencer. (ethereum-optimism#945) * Add healthcheck endpoint for rpc-proxy Added ethereum-nginx-proxy source updated README and docker image build * Check ETH_CALLS_ALLOWED is set, clean up comments, remove old Dockerfile * feat: deployment config for fee oracle contract (ethereum-optimism#936) * feat[contracts]: add GasPriceOracle w/o predeploy Based on ethereum-optimism#912 * feat[contracts]: congestion price oracle * chore: add changeset * contracts: gas price oracle (ethereum-optimism#917) * contracts: gas price oracle * tests: update * fees: fix tests * contracts: simplify gas price oracle * lint: fix * test: execution price is at the 1st storage slot * chore: rename predeploy to GasPriceOracle * chore: rename gas price oracle test name Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * Add an L2 deploy script for gas oracle contract * Add a kovan deployment artifact * Add deployment to readme * Add extra validation & initial execution price * Update README.md * Fix execution price logic * Perform new deployment with final contract * contracts: better require in ovm gas price oracle * Deploy L2GasPriceOracle * Update contract to use new fee logic & rename to gas * Deploy updated contract * Fix lint * gas price oracle: do not restrict gas price * gas price oracle: new deployment * tests: delete dead test Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * ops: expose debug namespace (ethereum-optimism#1007) * fix(sync-service): prevent underflows (ethereum-optimism#1015) * fix(sync-service): prevent underflows * chore: add changeset * chore: remove dead confirmation depth * chore: remove eth1conf depth from rollup config * test: remove duplicate value in array (ethereum-optimism#1014) * ci: tag docker image for canary with abbreviated GITHUB_SHA (ethereum-optimism#1006) * ci: tag docker image for canary with abbreviated GITHUB_SHA * ci: update from 6 bytes to 8 bytes of abbreviation * refactor: improve logging for transactions being submitted to chain with gasPrice (ethereum-optimism#1016) * refactor: improve logging for transactions being submitted to chain with gasPrice * lint: apply lint autofixes * ci: upload logs for failed integration tests (ethereum-optimism#1020) * fix(dtl): improve slow blocking JSON parsing that occurs during l2 sync (ethereum-optimism#1019) The use of eth_getBlockRange returns a large response which is very slow to parse in ethersjs, and can block the event loop for upwards of multiple seconds. When this happens, incoming http requests will likely timeout and fail. Instead, we will parse the incoming http stream directly with the bfj package, which yields the event loop periodically so that we don't fail to serve requests. * fix: lint errors in dtl (ethereum-optimism#1025) * fix[dtl]: fix dtl bug breaking verifiers (ethereum-optimism#1011) * fix[dtl]: fix dtl bug breaking verifiers * tweaks so tests pass * chore: add changeset Co-authored-by: Maurelian <maurelian@protonmail.ch> Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Karl Floersch <karl@karlfloersch.com> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> Co-authored-by: Elena Gesheva <elena@arenabg.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Kevin Ho <kevinjho1996@gmail.com> Co-authored-by: Ben Wilson <82120899+optimisticben@users.noreply.github.com> Co-authored-by: Liam Horne <liam@lihorne.com> Co-authored-by: Tim Myers <timmyers09@gmail.com>
* chore: reduce hardhat timeout to 20 seconds (ethereum-optimism#968) * fix: force LF line endings for scripts to avoid docker problems on Windows (ethereum-optimism#974) * fix: use correct line endings for windows * chore: add changeset * feat: add hardhat deploy instructions to readme (ethereum-optimism#965) * feat: add deployment instructions to readme * Add changeset * fix style * Update README.md * feat: fees v2 (ethereum-optimism#976) * l2 geth: new fee logic * l2 geth: migrate to fees package * core-utils: new fee scheme * chore: add changeset * l2geth: delete dead code * integration-tests: fix typo * integration-tests: fixes * fees: use fee scalar * lint: fix * rollup: correct gas payment comparison * fix(integration-tests): do not hardcode gas price * core-utils: update with new scheme * l2geth: refactor rollup oracle * l2geth: clean up DoEstimateGas * l2geth: implement latest scheme * tests: fix up * lint: fix * l2geth: better sycn service test * optimism: rename to TxGasLimit * fee: fix docstring * tests: fix * variables: rename * l2geth: prevent users from sending txs with too high of a fee * integration-tests: fix import * integration-tests: fix type * integration-tests: fix gas limits * lint: fix * l2geth: log error Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * Add static analysis action (ethereum-optimism#848) * Add static analysis github action setup python and install slither * Add nvmrc file for setting node to v14.17 * Update slither command run to link missing contract packages from monorepo root * Add steps for installing dependencies * Add yarn build step to github action * Enable colour in github action for static analysis * Disable certain detectors * Ensure slither does not fail build * Add instructions on running static analysis to monorepo readme * build(deps): bump ws from 7.4.4 to 7.4.6 in /ops/docker/hardhat (ethereum-optimism#987) Bumps [ws](https://github.com/websockets/ws) from 7.4.4 to 7.4.6. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](websockets/ws@7.4.4...7.4.6) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat[message-relayer]: relay tx generator (ethereum-optimism#952) * feat[message-relayer]: relay tx generator * whoops, I burned our infura key * fix minor bug * add comments * add more comments and clean stuff up * add empty test descriptions * add tests * move smock to dev deps * chore: add changeset * minor cleanup to merkle tree proof function * use bignumber math to avoid nested await * use a better interface * minor fixes and simplifications * backwards compatible dtl syncing (ethereum-optimism#986) * kovan: fix attempt * kovan: db fix * kovan: types are strings from db * l2geth: parse things as strings * chore: add changeset * dtl: also stringify the range query * geth: dereference * geth: assign err * dtl: handle null * dtl: fix unit tests * fix[smock]: fix broken call assertions for overloaded functions (ethereum-optimism#996) * fix[smock]: fix broken call assertions for overloaded functions * chore: add changeset * minor correction and add a test * add a test for non-overloaded functions * fix[message-relayer]: remove spreadsheet mode (ethereum-optimism#998) * fix[message-relayer]: remove spreadsheet mode * chore: add changeset * Lower local rollup timestamp refresh (ethereum-optimism#985) * update rollup timestamp refresh * increase refresh time to 5s * feat: fees v3 (ethereum-optimism#999) * core-utils: fee impl v3 * l2geth: fees v3 impl * integration-tests: update for fees v3 * chore: add changeset * fix: typo * integration-tests: fix and generalize * fees: update fee scalar * l2geth: check gas in the mempool behind usingovm * tests: fix up * l2geth: remove dead var * truffle: fix config * fix: remove dead coders (ethereum-optimism#1001) * chore: delete dead coders * chore: add changeset * dtl: remove dead imports * core-utils: delete dead tests * batch-submitter: remove txtype * chore: add changeset * docs[message-relayer]: add a README and improve the interface for generating proofs (ethereum-optimism#1002) * docs[message-relayer]: add basic docs and clean up an interface * chore: add changeset * dtl: log error stack for failed http request (ethereum-optimism#995) * dtl: log error stack for failed http request * chore: add changeset * Add rpc-proxy service for whitelisting JSON RPC methods to the sequencer. (ethereum-optimism#945) * Add healthcheck endpoint for rpc-proxy Added ethereum-nginx-proxy source updated README and docker image build * Check ETH_CALLS_ALLOWED is set, clean up comments, remove old Dockerfile * feat: deployment config for fee oracle contract (ethereum-optimism#936) * feat[contracts]: add GasPriceOracle w/o predeploy Based on ethereum-optimism#912 * feat[contracts]: congestion price oracle * chore: add changeset * contracts: gas price oracle (ethereum-optimism#917) * contracts: gas price oracle * tests: update * fees: fix tests * contracts: simplify gas price oracle * lint: fix * test: execution price is at the 1st storage slot * chore: rename predeploy to GasPriceOracle * chore: rename gas price oracle test name Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * Add an L2 deploy script for gas oracle contract * Add a kovan deployment artifact * Add deployment to readme * Add extra validation & initial execution price * Update README.md * Fix execution price logic * Perform new deployment with final contract * contracts: better require in ovm gas price oracle * Deploy L2GasPriceOracle * Update contract to use new fee logic & rename to gas * Deploy updated contract * Fix lint * gas price oracle: do not restrict gas price * gas price oracle: new deployment * tests: delete dead test Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * ops: expose debug namespace (ethereum-optimism#1007) * fix(sync-service): prevent underflows (ethereum-optimism#1015) * fix(sync-service): prevent underflows * chore: add changeset * chore: remove dead confirmation depth * chore: remove eth1conf depth from rollup config * test: remove duplicate value in array (ethereum-optimism#1014) * ci: tag docker image for canary with abbreviated GITHUB_SHA (ethereum-optimism#1006) * ci: tag docker image for canary with abbreviated GITHUB_SHA * ci: update from 6 bytes to 8 bytes of abbreviation * refactor: improve logging for transactions being submitted to chain with gasPrice (ethereum-optimism#1016) * refactor: improve logging for transactions being submitted to chain with gasPrice * lint: apply lint autofixes * ci: upload logs for failed integration tests (ethereum-optimism#1020) * fix(dtl): improve slow blocking JSON parsing that occurs during l2 sync (ethereum-optimism#1019) The use of eth_getBlockRange returns a large response which is very slow to parse in ethersjs, and can block the event loop for upwards of multiple seconds. When this happens, incoming http requests will likely timeout and fail. Instead, we will parse the incoming http stream directly with the bfj package, which yields the event loop periodically so that we don't fail to serve requests. * fix: lint errors in dtl (ethereum-optimism#1025) * fix[dtl]: fix dtl bug breaking verifiers (ethereum-optimism#1011) * fix[dtl]: fix dtl bug breaking verifiers * tweaks so tests pass * chore: add changeset * fix: deterministic blockhashes (ethereum-optimism#1032) * config: set etherbase * l2geth: add deterministic clique key * l2geth: default value * chore: add changeset * test: add sync test for deterministic blockhash Co-authored-by: Kevin Ho <kevinjho1996@gmail.com> * Version Packages (ethereum-optimism#978) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * ci: add sync test's own workflow (ethereum-optimism#1031) * fix(dtl): incorrect parsing of eth_getBlockRange result (ethereum-optimism#1037) Co-authored-by: Maurelian <maurelian@protonmail.ch> Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Karl Floersch <karl@karlfloersch.com> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> Co-authored-by: Elena Gesheva <elena@arenabg.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Kevin Ho <kevinjho1996@gmail.com> Co-authored-by: Ben Wilson <82120899+optimisticben@users.noreply.github.com> Co-authored-by: Liam Horne <liam@lihorne.com> Co-authored-by: Tim Myers <timmyers09@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Annie Ke <annieke8@gmail.com>
* chore: reduce hardhat timeout to 20 seconds (ethereum-optimism#968) * fix: force LF line endings for scripts to avoid docker problems on Windows (ethereum-optimism#974) * fix: use correct line endings for windows * chore: add changeset * feat: add hardhat deploy instructions to readme (ethereum-optimism#965) * feat: add deployment instructions to readme * Add changeset * fix style * Update README.md * feat: fees v2 (ethereum-optimism#976) * l2 geth: new fee logic * l2 geth: migrate to fees package * core-utils: new fee scheme * chore: add changeset * l2geth: delete dead code * integration-tests: fix typo * integration-tests: fixes * fees: use fee scalar * lint: fix * rollup: correct gas payment comparison * fix(integration-tests): do not hardcode gas price * core-utils: update with new scheme * l2geth: refactor rollup oracle * l2geth: clean up DoEstimateGas * l2geth: implement latest scheme * tests: fix up * lint: fix * l2geth: better sycn service test * optimism: rename to TxGasLimit * fee: fix docstring * tests: fix * variables: rename * l2geth: prevent users from sending txs with too high of a fee * integration-tests: fix import * integration-tests: fix type * integration-tests: fix gas limits * lint: fix * l2geth: log error Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * Add static analysis action (ethereum-optimism#848) * Add static analysis github action setup python and install slither * Add nvmrc file for setting node to v14.17 * Update slither command run to link missing contract packages from monorepo root * Add steps for installing dependencies * Add yarn build step to github action * Enable colour in github action for static analysis * Disable certain detectors * Ensure slither does not fail build * Add instructions on running static analysis to monorepo readme * build(deps): bump ws from 7.4.4 to 7.4.6 in /ops/docker/hardhat (ethereum-optimism#987) Bumps [ws](https://github.com/websockets/ws) from 7.4.4 to 7.4.6. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](websockets/ws@7.4.4...7.4.6) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat[message-relayer]: relay tx generator (ethereum-optimism#952) * feat[message-relayer]: relay tx generator * whoops, I burned our infura key * fix minor bug * add comments * add more comments and clean stuff up * add empty test descriptions * add tests * move smock to dev deps * chore: add changeset * minor cleanup to merkle tree proof function * use bignumber math to avoid nested await * use a better interface * minor fixes and simplifications * backwards compatible dtl syncing (ethereum-optimism#986) * kovan: fix attempt * kovan: db fix * kovan: types are strings from db * l2geth: parse things as strings * chore: add changeset * dtl: also stringify the range query * geth: dereference * geth: assign err * dtl: handle null * dtl: fix unit tests * fix[smock]: fix broken call assertions for overloaded functions (ethereum-optimism#996) * fix[smock]: fix broken call assertions for overloaded functions * chore: add changeset * minor correction and add a test * add a test for non-overloaded functions * fix[message-relayer]: remove spreadsheet mode (ethereum-optimism#998) * fix[message-relayer]: remove spreadsheet mode * chore: add changeset * Lower local rollup timestamp refresh (ethereum-optimism#985) * update rollup timestamp refresh * increase refresh time to 5s * feat: fees v3 (ethereum-optimism#999) * core-utils: fee impl v3 * l2geth: fees v3 impl * integration-tests: update for fees v3 * chore: add changeset * fix: typo * integration-tests: fix and generalize * fees: update fee scalar * l2geth: check gas in the mempool behind usingovm * tests: fix up * l2geth: remove dead var * truffle: fix config * fix: remove dead coders (ethereum-optimism#1001) * chore: delete dead coders * chore: add changeset * dtl: remove dead imports * core-utils: delete dead tests * batch-submitter: remove txtype * chore: add changeset * docs[message-relayer]: add a README and improve the interface for generating proofs (ethereum-optimism#1002) * docs[message-relayer]: add basic docs and clean up an interface * chore: add changeset * dtl: log error stack for failed http request (ethereum-optimism#995) * dtl: log error stack for failed http request * chore: add changeset * Add rpc-proxy service for whitelisting JSON RPC methods to the sequencer. (ethereum-optimism#945) * Add healthcheck endpoint for rpc-proxy Added ethereum-nginx-proxy source updated README and docker image build * Check ETH_CALLS_ALLOWED is set, clean up comments, remove old Dockerfile * feat: deployment config for fee oracle contract (ethereum-optimism#936) * feat[contracts]: add GasPriceOracle w/o predeploy Based on ethereum-optimism#912 * feat[contracts]: congestion price oracle * chore: add changeset * contracts: gas price oracle (ethereum-optimism#917) * contracts: gas price oracle * tests: update * fees: fix tests * contracts: simplify gas price oracle * lint: fix * test: execution price is at the 1st storage slot * chore: rename predeploy to GasPriceOracle * chore: rename gas price oracle test name Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * Add an L2 deploy script for gas oracle contract * Add a kovan deployment artifact * Add deployment to readme * Add extra validation & initial execution price * Update README.md * Fix execution price logic * Perform new deployment with final contract * contracts: better require in ovm gas price oracle * Deploy L2GasPriceOracle * Update contract to use new fee logic & rename to gas * Deploy updated contract * Fix lint * gas price oracle: do not restrict gas price * gas price oracle: new deployment * tests: delete dead test Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * ops: expose debug namespace (ethereum-optimism#1007) * fix(sync-service): prevent underflows (ethereum-optimism#1015) * fix(sync-service): prevent underflows * chore: add changeset * chore: remove dead confirmation depth * chore: remove eth1conf depth from rollup config * test: remove duplicate value in array (ethereum-optimism#1014) * ci: tag docker image for canary with abbreviated GITHUB_SHA (ethereum-optimism#1006) * ci: tag docker image for canary with abbreviated GITHUB_SHA * ci: update from 6 bytes to 8 bytes of abbreviation * refactor: improve logging for transactions being submitted to chain with gasPrice (ethereum-optimism#1016) * refactor: improve logging for transactions being submitted to chain with gasPrice * lint: apply lint autofixes * ci: upload logs for failed integration tests (ethereum-optimism#1020) * fix(dtl): improve slow blocking JSON parsing that occurs during l2 sync (ethereum-optimism#1019) The use of eth_getBlockRange returns a large response which is very slow to parse in ethersjs, and can block the event loop for upwards of multiple seconds. When this happens, incoming http requests will likely timeout and fail. Instead, we will parse the incoming http stream directly with the bfj package, which yields the event loop periodically so that we don't fail to serve requests. * fix: lint errors in dtl (ethereum-optimism#1025) * fix[dtl]: fix dtl bug breaking verifiers (ethereum-optimism#1011) * fix[dtl]: fix dtl bug breaking verifiers * tweaks so tests pass * chore: add changeset * fix: deterministic blockhashes (ethereum-optimism#1032) * config: set etherbase * l2geth: add deterministic clique key * l2geth: default value * chore: add changeset * test: add sync test for deterministic blockhash Co-authored-by: Kevin Ho <kevinjho1996@gmail.com> * Version Packages (ethereum-optimism#978) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * ci: add sync test's own workflow (ethereum-optimism#1031) * fix(dtl): incorrect parsing of eth_getBlockRange result (ethereum-optimism#1037) * Version Packages (ethereum-optimism#1045) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * build(deps): bump glob-parent from 5.1.1 to 5.1.2 (ethereum-optimism#1036) Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2. - [Release notes](https://github.com/gulpjs/glob-parent/releases) - [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md) - [Commits](gulpjs/glob-parent@v5.1.1...v5.1.2) --- updated-dependencies: - dependency-name: glob-parent dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Liam Horne <liam@lihorne.com> * l2geth: optimize loops (ethereum-optimism#1027) * l2geth: optimize loops * l2geth: stop ticker when done * l2geth: don't wait for first tick * chore: add changeset * Enable custom tagging of release docker image (ethereum-optimism#1048) * ci: enable custom tagging of release docker image * ci: refactor to add prerelease prefix for secuirty * doc: typo * ci: fix indentation issue of canary workflow * ci: fix typo with GITHUB_SHA * fix: typo in USE_HARDHAT config (ethereum-optimism#1023) * l2geth: bump to go 1.15 (ethereum-optimism#1058) * l2geth: bump to go 1.15 * chore: add changeset * Change monotonicity band-aid code to log warnings not errors (ethereum-optimism#1060) * refactor: change monotonicity band-aid code to log warnings not errors * build: add changeset * Ensure Sentry is correctly set up for DTL and MR (ethereum-optimism#1054) * refactor: add logger and metrics to options for BaseService * refactor: thread sentryOptions through from message-relayer into BaseService * refactor: ensure DTL Logger is using Sentry for errors * style: lint base-service.ts * refactor: init Sentry on batch-submitter too * refactor: init Sentry on message-relayer too * refactor: pass in basic logger to MessageRelayerService * build: provide changeset * fix: correct usage of use-sentry boolean config * refactor: appropriately type loggingOptions * build: add @sentry/node * build: add @sentry/node to message-relayer and fix linting issue * Add more logging information to monotonicity violation logs (ethereum-optimism#1066) * refactor: log idx of monotonicity violation from batch * build: add changeset * fix: monotonicity auto healer (ethereum-optimism#1070) * fix: monotonicity auto healer * add: changeset * Version Packages (ethereum-optimism#1053) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Maurelian <maurelian@protonmail.ch> Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Karl Floersch <karl@karlfloersch.com> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> Co-authored-by: Elena Gesheva <elena@arenabg.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Kevin Ho <kevinjho1996@gmail.com> Co-authored-by: Ben Wilson <82120899+optimisticben@users.noreply.github.com> Co-authored-by: Liam Horne <liam@lihorne.com> Co-authored-by: Tim Myers <timmyers09@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Annie Ke <annieke8@gmail.com>
* chore: reduce hardhat timeout to 20 seconds (ethereum-optimism#968) * fix: force LF line endings for scripts to avoid docker problems on Windows (ethereum-optimism#974) * fix: use correct line endings for windows * chore: add changeset * feat: add hardhat deploy instructions to readme (ethereum-optimism#965) * feat: add deployment instructions to readme * Add changeset * fix style * Update README.md * feat: fees v2 (ethereum-optimism#976) * l2 geth: new fee logic * l2 geth: migrate to fees package * core-utils: new fee scheme * chore: add changeset * l2geth: delete dead code * integration-tests: fix typo * integration-tests: fixes * fees: use fee scalar * lint: fix * rollup: correct gas payment comparison * fix(integration-tests): do not hardcode gas price * core-utils: update with new scheme * l2geth: refactor rollup oracle * l2geth: clean up DoEstimateGas * l2geth: implement latest scheme * tests: fix up * lint: fix * l2geth: better sycn service test * optimism: rename to TxGasLimit * fee: fix docstring * tests: fix * variables: rename * l2geth: prevent users from sending txs with too high of a fee * integration-tests: fix import * integration-tests: fix type * integration-tests: fix gas limits * lint: fix * l2geth: log error Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * Add static analysis action (ethereum-optimism#848) * Add static analysis github action setup python and install slither * Add nvmrc file for setting node to v14.17 * Update slither command run to link missing contract packages from monorepo root * Add steps for installing dependencies * Add yarn build step to github action * Enable colour in github action for static analysis * Disable certain detectors * Ensure slither does not fail build * Add instructions on running static analysis to monorepo readme * build(deps): bump ws from 7.4.4 to 7.4.6 in /ops/docker/hardhat (ethereum-optimism#987) Bumps [ws](https://github.com/websockets/ws) from 7.4.4 to 7.4.6. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](websockets/ws@7.4.4...7.4.6) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat[message-relayer]: relay tx generator (ethereum-optimism#952) * feat[message-relayer]: relay tx generator * whoops, I burned our infura key * fix minor bug * add comments * add more comments and clean stuff up * add empty test descriptions * add tests * move smock to dev deps * chore: add changeset * minor cleanup to merkle tree proof function * use bignumber math to avoid nested await * use a better interface * minor fixes and simplifications * backwards compatible dtl syncing (ethereum-optimism#986) * kovan: fix attempt * kovan: db fix * kovan: types are strings from db * l2geth: parse things as strings * chore: add changeset * dtl: also stringify the range query * geth: dereference * geth: assign err * dtl: handle null * dtl: fix unit tests * fix[smock]: fix broken call assertions for overloaded functions (ethereum-optimism#996) * fix[smock]: fix broken call assertions for overloaded functions * chore: add changeset * minor correction and add a test * add a test for non-overloaded functions * fix[message-relayer]: remove spreadsheet mode (ethereum-optimism#998) * fix[message-relayer]: remove spreadsheet mode * chore: add changeset * Lower local rollup timestamp refresh (ethereum-optimism#985) * update rollup timestamp refresh * increase refresh time to 5s * feat: fees v3 (ethereum-optimism#999) * core-utils: fee impl v3 * l2geth: fees v3 impl * integration-tests: update for fees v3 * chore: add changeset * fix: typo * integration-tests: fix and generalize * fees: update fee scalar * l2geth: check gas in the mempool behind usingovm * tests: fix up * l2geth: remove dead var * truffle: fix config * fix: remove dead coders (ethereum-optimism#1001) * chore: delete dead coders * chore: add changeset * dtl: remove dead imports * core-utils: delete dead tests * batch-submitter: remove txtype * chore: add changeset * docs[message-relayer]: add a README and improve the interface for generating proofs (ethereum-optimism#1002) * docs[message-relayer]: add basic docs and clean up an interface * chore: add changeset * dtl: log error stack for failed http request (ethereum-optimism#995) * dtl: log error stack for failed http request * chore: add changeset * Add rpc-proxy service for whitelisting JSON RPC methods to the sequencer. (ethereum-optimism#945) * Add healthcheck endpoint for rpc-proxy Added ethereum-nginx-proxy source updated README and docker image build * Check ETH_CALLS_ALLOWED is set, clean up comments, remove old Dockerfile * feat: deployment config for fee oracle contract (ethereum-optimism#936) * feat[contracts]: add GasPriceOracle w/o predeploy Based on ethereum-optimism#912 * feat[contracts]: congestion price oracle * chore: add changeset * contracts: gas price oracle (ethereum-optimism#917) * contracts: gas price oracle * tests: update * fees: fix tests * contracts: simplify gas price oracle * lint: fix * test: execution price is at the 1st storage slot * chore: rename predeploy to GasPriceOracle * chore: rename gas price oracle test name Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * Add an L2 deploy script for gas oracle contract * Add a kovan deployment artifact * Add deployment to readme * Add extra validation & initial execution price * Update README.md * Fix execution price logic * Perform new deployment with final contract * contracts: better require in ovm gas price oracle * Deploy L2GasPriceOracle * Update contract to use new fee logic & rename to gas * Deploy updated contract * Fix lint * gas price oracle: do not restrict gas price * gas price oracle: new deployment * tests: delete dead test Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * ops: expose debug namespace (ethereum-optimism#1007) * fix(sync-service): prevent underflows (ethereum-optimism#1015) * fix(sync-service): prevent underflows * chore: add changeset * chore: remove dead confirmation depth * chore: remove eth1conf depth from rollup config * test: remove duplicate value in array (ethereum-optimism#1014) * ci: tag docker image for canary with abbreviated GITHUB_SHA (ethereum-optimism#1006) * ci: tag docker image for canary with abbreviated GITHUB_SHA * ci: update from 6 bytes to 8 bytes of abbreviation * refactor: improve logging for transactions being submitted to chain with gasPrice (ethereum-optimism#1016) * refactor: improve logging for transactions being submitted to chain with gasPrice * lint: apply lint autofixes * ci: upload logs for failed integration tests (ethereum-optimism#1020) * fix(dtl): improve slow blocking JSON parsing that occurs during l2 sync (ethereum-optimism#1019) The use of eth_getBlockRange returns a large response which is very slow to parse in ethersjs, and can block the event loop for upwards of multiple seconds. When this happens, incoming http requests will likely timeout and fail. Instead, we will parse the incoming http stream directly with the bfj package, which yields the event loop periodically so that we don't fail to serve requests. * fix: lint errors in dtl (ethereum-optimism#1025) * fix[dtl]: fix dtl bug breaking verifiers (ethereum-optimism#1011) * fix[dtl]: fix dtl bug breaking verifiers * tweaks so tests pass * chore: add changeset * fix: deterministic blockhashes (ethereum-optimism#1032) * config: set etherbase * l2geth: add deterministic clique key * l2geth: default value * chore: add changeset * test: add sync test for deterministic blockhash Co-authored-by: Kevin Ho <kevinjho1996@gmail.com> * Version Packages (ethereum-optimism#978) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * ci: add sync test's own workflow (ethereum-optimism#1031) * fix(dtl): incorrect parsing of eth_getBlockRange result (ethereum-optimism#1037) * Version Packages (ethereum-optimism#1045) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * build(deps): bump glob-parent from 5.1.1 to 5.1.2 (ethereum-optimism#1036) Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2. - [Release notes](https://github.com/gulpjs/glob-parent/releases) - [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md) - [Commits](gulpjs/glob-parent@v5.1.1...v5.1.2) --- updated-dependencies: - dependency-name: glob-parent dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Liam Horne <liam@lihorne.com> * l2geth: optimize loops (ethereum-optimism#1027) * l2geth: optimize loops * l2geth: stop ticker when done * l2geth: don't wait for first tick * chore: add changeset * Enable custom tagging of release docker image (ethereum-optimism#1048) * ci: enable custom tagging of release docker image * ci: refactor to add prerelease prefix for secuirty * doc: typo * ci: fix indentation issue of canary workflow * ci: fix typo with GITHUB_SHA * fix: typo in USE_HARDHAT config (ethereum-optimism#1023) * l2geth: bump to go 1.15 (ethereum-optimism#1058) * l2geth: bump to go 1.15 * chore: add changeset * Change monotonicity band-aid code to log warnings not errors (ethereum-optimism#1060) * refactor: change monotonicity band-aid code to log warnings not errors * build: add changeset * Ensure Sentry is correctly set up for DTL and MR (ethereum-optimism#1054) * refactor: add logger and metrics to options for BaseService * refactor: thread sentryOptions through from message-relayer into BaseService * refactor: ensure DTL Logger is using Sentry for errors * style: lint base-service.ts * refactor: init Sentry on batch-submitter too * refactor: init Sentry on message-relayer too * refactor: pass in basic logger to MessageRelayerService * build: provide changeset * fix: correct usage of use-sentry boolean config * refactor: appropriately type loggingOptions * build: add @sentry/node * build: add @sentry/node to message-relayer and fix linting issue * Add more logging information to monotonicity violation logs (ethereum-optimism#1066) * refactor: log idx of monotonicity violation from batch * build: add changeset * fix: monotonicity auto healer (ethereum-optimism#1070) * fix: monotonicity auto healer * add: changeset * Version Packages (ethereum-optimism#1053) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Maurelian <maurelian@protonmail.ch> Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Karl Floersch <karl@karlfloersch.com> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> Co-authored-by: Elena Gesheva <elena@arenabg.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Kevin Ho <kevinjho1996@gmail.com> Co-authored-by: Ben Wilson <82120899+optimisticben@users.noreply.github.com> Co-authored-by: Liam Horne <liam@lihorne.com> Co-authored-by: Tim Myers <timmyers09@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Annie Ke <annieke8@gmail.com>
* chore: reduce hardhat timeout to 20 seconds (ethereum-optimism#968) * fix: force LF line endings for scripts to avoid docker problems on Windows (ethereum-optimism#974) * fix: use correct line endings for windows * chore: add changeset * feat: add hardhat deploy instructions to readme (ethereum-optimism#965) * feat: add deployment instructions to readme * Add changeset * fix style * Update README.md * feat: fees v2 (ethereum-optimism#976) * l2 geth: new fee logic * l2 geth: migrate to fees package * core-utils: new fee scheme * chore: add changeset * l2geth: delete dead code * integration-tests: fix typo * integration-tests: fixes * fees: use fee scalar * lint: fix * rollup: correct gas payment comparison * fix(integration-tests): do not hardcode gas price * core-utils: update with new scheme * l2geth: refactor rollup oracle * l2geth: clean up DoEstimateGas * l2geth: implement latest scheme * tests: fix up * lint: fix * l2geth: better sycn service test * optimism: rename to TxGasLimit * fee: fix docstring * tests: fix * variables: rename * l2geth: prevent users from sending txs with too high of a fee * integration-tests: fix import * integration-tests: fix type * integration-tests: fix gas limits * lint: fix * l2geth: log error Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * Add static analysis action (ethereum-optimism#848) * Add static analysis github action setup python and install slither * Add nvmrc file for setting node to v14.17 * Update slither command run to link missing contract packages from monorepo root * Add steps for installing dependencies * Add yarn build step to github action * Enable colour in github action for static analysis * Disable certain detectors * Ensure slither does not fail build * Add instructions on running static analysis to monorepo readme * build(deps): bump ws from 7.4.4 to 7.4.6 in /ops/docker/hardhat (ethereum-optimism#987) Bumps [ws](https://github.com/websockets/ws) from 7.4.4 to 7.4.6. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](websockets/ws@7.4.4...7.4.6) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat[message-relayer]: relay tx generator (ethereum-optimism#952) * feat[message-relayer]: relay tx generator * whoops, I burned our infura key * fix minor bug * add comments * add more comments and clean stuff up * add empty test descriptions * add tests * move smock to dev deps * chore: add changeset * minor cleanup to merkle tree proof function * use bignumber math to avoid nested await * use a better interface * minor fixes and simplifications * backwards compatible dtl syncing (ethereum-optimism#986) * kovan: fix attempt * kovan: db fix * kovan: types are strings from db * l2geth: parse things as strings * chore: add changeset * dtl: also stringify the range query * geth: dereference * geth: assign err * dtl: handle null * dtl: fix unit tests * fix[smock]: fix broken call assertions for overloaded functions (ethereum-optimism#996) * fix[smock]: fix broken call assertions for overloaded functions * chore: add changeset * minor correction and add a test * add a test for non-overloaded functions * fix[message-relayer]: remove spreadsheet mode (ethereum-optimism#998) * fix[message-relayer]: remove spreadsheet mode * chore: add changeset * Lower local rollup timestamp refresh (ethereum-optimism#985) * update rollup timestamp refresh * increase refresh time to 5s * feat: fees v3 (ethereum-optimism#999) * core-utils: fee impl v3 * l2geth: fees v3 impl * integration-tests: update for fees v3 * chore: add changeset * fix: typo * integration-tests: fix and generalize * fees: update fee scalar * l2geth: check gas in the mempool behind usingovm * tests: fix up * l2geth: remove dead var * truffle: fix config * fix: remove dead coders (ethereum-optimism#1001) * chore: delete dead coders * chore: add changeset * dtl: remove dead imports * core-utils: delete dead tests * batch-submitter: remove txtype * chore: add changeset * docs[message-relayer]: add a README and improve the interface for generating proofs (ethereum-optimism#1002) * docs[message-relayer]: add basic docs and clean up an interface * chore: add changeset * dtl: log error stack for failed http request (ethereum-optimism#995) * dtl: log error stack for failed http request * chore: add changeset * Add rpc-proxy service for whitelisting JSON RPC methods to the sequencer. (ethereum-optimism#945) * Add healthcheck endpoint for rpc-proxy Added ethereum-nginx-proxy source updated README and docker image build * Check ETH_CALLS_ALLOWED is set, clean up comments, remove old Dockerfile * feat: deployment config for fee oracle contract (ethereum-optimism#936) * feat[contracts]: add GasPriceOracle w/o predeploy Based on ethereum-optimism#912 * feat[contracts]: congestion price oracle * chore: add changeset * contracts: gas price oracle (ethereum-optimism#917) * contracts: gas price oracle * tests: update * fees: fix tests * contracts: simplify gas price oracle * lint: fix * test: execution price is at the 1st storage slot * chore: rename predeploy to GasPriceOracle * chore: rename gas price oracle test name Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * Add an L2 deploy script for gas oracle contract * Add a kovan deployment artifact * Add deployment to readme * Add extra validation & initial execution price * Update README.md * Fix execution price logic * Perform new deployment with final contract * contracts: better require in ovm gas price oracle * Deploy L2GasPriceOracle * Update contract to use new fee logic & rename to gas * Deploy updated contract * Fix lint * gas price oracle: do not restrict gas price * gas price oracle: new deployment * tests: delete dead test Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * ops: expose debug namespace (ethereum-optimism#1007) * fix(sync-service): prevent underflows (ethereum-optimism#1015) * fix(sync-service): prevent underflows * chore: add changeset * chore: remove dead confirmation depth * chore: remove eth1conf depth from rollup config * test: remove duplicate value in array (ethereum-optimism#1014) * ci: tag docker image for canary with abbreviated GITHUB_SHA (ethereum-optimism#1006) * ci: tag docker image for canary with abbreviated GITHUB_SHA * ci: update from 6 bytes to 8 bytes of abbreviation * refactor: improve logging for transactions being submitted to chain with gasPrice (ethereum-optimism#1016) * refactor: improve logging for transactions being submitted to chain with gasPrice * lint: apply lint autofixes * ci: upload logs for failed integration tests (ethereum-optimism#1020) * fix(dtl): improve slow blocking JSON parsing that occurs during l2 sync (ethereum-optimism#1019) The use of eth_getBlockRange returns a large response which is very slow to parse in ethersjs, and can block the event loop for upwards of multiple seconds. When this happens, incoming http requests will likely timeout and fail. Instead, we will parse the incoming http stream directly with the bfj package, which yields the event loop periodically so that we don't fail to serve requests. * fix: lint errors in dtl (ethereum-optimism#1025) * fix[dtl]: fix dtl bug breaking verifiers (ethereum-optimism#1011) * fix[dtl]: fix dtl bug breaking verifiers * tweaks so tests pass * chore: add changeset * fix: deterministic blockhashes (ethereum-optimism#1032) * config: set etherbase * l2geth: add deterministic clique key * l2geth: default value * chore: add changeset * test: add sync test for deterministic blockhash Co-authored-by: Kevin Ho <kevinjho1996@gmail.com> * Version Packages (ethereum-optimism#978) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * ci: add sync test's own workflow (ethereum-optimism#1031) * fix(dtl): incorrect parsing of eth_getBlockRange result (ethereum-optimism#1037) * Version Packages (ethereum-optimism#1045) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * build(deps): bump glob-parent from 5.1.1 to 5.1.2 (ethereum-optimism#1036) Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2. - [Release notes](https://github.com/gulpjs/glob-parent/releases) - [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md) - [Commits](gulpjs/glob-parent@v5.1.1...v5.1.2) --- updated-dependencies: - dependency-name: glob-parent dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Liam Horne <liam@lihorne.com> * l2geth: optimize loops (ethereum-optimism#1027) * l2geth: optimize loops * l2geth: stop ticker when done * l2geth: don't wait for first tick * chore: add changeset * Enable custom tagging of release docker image (ethereum-optimism#1048) * ci: enable custom tagging of release docker image * ci: refactor to add prerelease prefix for secuirty * doc: typo * ci: fix indentation issue of canary workflow * ci: fix typo with GITHUB_SHA * fix: typo in USE_HARDHAT config (ethereum-optimism#1023) * l2geth: bump to go 1.15 (ethereum-optimism#1058) * l2geth: bump to go 1.15 * chore: add changeset * Change monotonicity band-aid code to log warnings not errors (ethereum-optimism#1060) * refactor: change monotonicity band-aid code to log warnings not errors * build: add changeset * Ensure Sentry is correctly set up for DTL and MR (ethereum-optimism#1054) * refactor: add logger and metrics to options for BaseService * refactor: thread sentryOptions through from message-relayer into BaseService * refactor: ensure DTL Logger is using Sentry for errors * style: lint base-service.ts * refactor: init Sentry on batch-submitter too * refactor: init Sentry on message-relayer too * refactor: pass in basic logger to MessageRelayerService * build: provide changeset * fix: correct usage of use-sentry boolean config * refactor: appropriately type loggingOptions * build: add @sentry/node * build: add @sentry/node to message-relayer and fix linting issue * Add more logging information to monotonicity violation logs (ethereum-optimism#1066) * refactor: log idx of monotonicity violation from batch * build: add changeset * fix: monotonicity auto healer (ethereum-optimism#1070) * fix: monotonicity auto healer * add: changeset * Version Packages (ethereum-optimism#1053) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix: comment out codeowners (ethereum-optimism#1073) * fix[l2geth]: off-by-one sometimes breaking replica sync (ethereum-optimism#1082) * fix[l2geth]: off-by-one sometimes breaking replica sync * chore: add changeset * fix(l2geth): Log 'end of OVM execution' correctly (ethereum-optimism#1080) Co-authored-by: Maurelian <maurelian@protonmail.ch> Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Karl Floersch <karl@karlfloersch.com> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> Co-authored-by: Elena Gesheva <elena@arenabg.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Kevin Ho <kevinjho1996@gmail.com> Co-authored-by: Ben Wilson <82120899+optimisticben@users.noreply.github.com> Co-authored-by: Liam Horne <liam@lihorne.com> Co-authored-by: Tim Myers <timmyers09@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Annie Ke <annieke8@gmail.com>
* chore: reduce hardhat timeout to 20 seconds (ethereum-optimism#968) * fix: force LF line endings for scripts to avoid docker problems on Windows (ethereum-optimism#974) * fix: use correct line endings for windows * chore: add changeset * feat: add hardhat deploy instructions to readme (ethereum-optimism#965) * feat: add deployment instructions to readme * Add changeset * fix style * Update README.md * feat: fees v2 (ethereum-optimism#976) * l2 geth: new fee logic * l2 geth: migrate to fees package * core-utils: new fee scheme * chore: add changeset * l2geth: delete dead code * integration-tests: fix typo * integration-tests: fixes * fees: use fee scalar * lint: fix * rollup: correct gas payment comparison * fix(integration-tests): do not hardcode gas price * core-utils: update with new scheme * l2geth: refactor rollup oracle * l2geth: clean up DoEstimateGas * l2geth: implement latest scheme * tests: fix up * lint: fix * l2geth: better sycn service test * optimism: rename to TxGasLimit * fee: fix docstring * tests: fix * variables: rename * l2geth: prevent users from sending txs with too high of a fee * integration-tests: fix import * integration-tests: fix type * integration-tests: fix gas limits * lint: fix * l2geth: log error Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * Add static analysis action (ethereum-optimism#848) * Add static analysis github action setup python and install slither * Add nvmrc file for setting node to v14.17 * Update slither command run to link missing contract packages from monorepo root * Add steps for installing dependencies * Add yarn build step to github action * Enable colour in github action for static analysis * Disable certain detectors * Ensure slither does not fail build * Add instructions on running static analysis to monorepo readme * build(deps): bump ws from 7.4.4 to 7.4.6 in /ops/docker/hardhat (ethereum-optimism#987) Bumps [ws](https://github.com/websockets/ws) from 7.4.4 to 7.4.6. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](websockets/ws@7.4.4...7.4.6) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat[message-relayer]: relay tx generator (ethereum-optimism#952) * feat[message-relayer]: relay tx generator * whoops, I burned our infura key * fix minor bug * add comments * add more comments and clean stuff up * add empty test descriptions * add tests * move smock to dev deps * chore: add changeset * minor cleanup to merkle tree proof function * use bignumber math to avoid nested await * use a better interface * minor fixes and simplifications * backwards compatible dtl syncing (ethereum-optimism#986) * kovan: fix attempt * kovan: db fix * kovan: types are strings from db * l2geth: parse things as strings * chore: add changeset * dtl: also stringify the range query * geth: dereference * geth: assign err * dtl: handle null * dtl: fix unit tests * fix[smock]: fix broken call assertions for overloaded functions (ethereum-optimism#996) * fix[smock]: fix broken call assertions for overloaded functions * chore: add changeset * minor correction and add a test * add a test for non-overloaded functions * fix[message-relayer]: remove spreadsheet mode (ethereum-optimism#998) * fix[message-relayer]: remove spreadsheet mode * chore: add changeset * Lower local rollup timestamp refresh (ethereum-optimism#985) * update rollup timestamp refresh * increase refresh time to 5s * feat: fees v3 (ethereum-optimism#999) * core-utils: fee impl v3 * l2geth: fees v3 impl * integration-tests: update for fees v3 * chore: add changeset * fix: typo * integration-tests: fix and generalize * fees: update fee scalar * l2geth: check gas in the mempool behind usingovm * tests: fix up * l2geth: remove dead var * truffle: fix config * fix: remove dead coders (ethereum-optimism#1001) * chore: delete dead coders * chore: add changeset * dtl: remove dead imports * core-utils: delete dead tests * batch-submitter: remove txtype * chore: add changeset * docs[message-relayer]: add a README and improve the interface for generating proofs (ethereum-optimism#1002) * docs[message-relayer]: add basic docs and clean up an interface * chore: add changeset * dtl: log error stack for failed http request (ethereum-optimism#995) * dtl: log error stack for failed http request * chore: add changeset * Add rpc-proxy service for whitelisting JSON RPC methods to the sequencer. (ethereum-optimism#945) * Add healthcheck endpoint for rpc-proxy Added ethereum-nginx-proxy source updated README and docker image build * Check ETH_CALLS_ALLOWED is set, clean up comments, remove old Dockerfile * feat: deployment config for fee oracle contract (ethereum-optimism#936) * feat[contracts]: add GasPriceOracle w/o predeploy Based on ethereum-optimism#912 * feat[contracts]: congestion price oracle * chore: add changeset * contracts: gas price oracle (ethereum-optimism#917) * contracts: gas price oracle * tests: update * fees: fix tests * contracts: simplify gas price oracle * lint: fix * test: execution price is at the 1st storage slot * chore: rename predeploy to GasPriceOracle * chore: rename gas price oracle test name Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * Add an L2 deploy script for gas oracle contract * Add a kovan deployment artifact * Add deployment to readme * Add extra validation & initial execution price * Update README.md * Fix execution price logic * Perform new deployment with final contract * contracts: better require in ovm gas price oracle * Deploy L2GasPriceOracle * Update contract to use new fee logic & rename to gas * Deploy updated contract * Fix lint * gas price oracle: do not restrict gas price * gas price oracle: new deployment * tests: delete dead test Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * ops: expose debug namespace (ethereum-optimism#1007) * fix(sync-service): prevent underflows (ethereum-optimism#1015) * fix(sync-service): prevent underflows * chore: add changeset * chore: remove dead confirmation depth * chore: remove eth1conf depth from rollup config * test: remove duplicate value in array (ethereum-optimism#1014) * ci: tag docker image for canary with abbreviated GITHUB_SHA (ethereum-optimism#1006) * ci: tag docker image for canary with abbreviated GITHUB_SHA * ci: update from 6 bytes to 8 bytes of abbreviation * refactor: improve logging for transactions being submitted to chain with gasPrice (ethereum-optimism#1016) * refactor: improve logging for transactions being submitted to chain with gasPrice * lint: apply lint autofixes * ci: upload logs for failed integration tests (ethereum-optimism#1020) * fix(dtl): improve slow blocking JSON parsing that occurs during l2 sync (ethereum-optimism#1019) The use of eth_getBlockRange returns a large response which is very slow to parse in ethersjs, and can block the event loop for upwards of multiple seconds. When this happens, incoming http requests will likely timeout and fail. Instead, we will parse the incoming http stream directly with the bfj package, which yields the event loop periodically so that we don't fail to serve requests. * fix: lint errors in dtl (ethereum-optimism#1025) * fix[dtl]: fix dtl bug breaking verifiers (ethereum-optimism#1011) * fix[dtl]: fix dtl bug breaking verifiers * tweaks so tests pass * chore: add changeset * fix: deterministic blockhashes (ethereum-optimism#1032) * config: set etherbase * l2geth: add deterministic clique key * l2geth: default value * chore: add changeset * test: add sync test for deterministic blockhash Co-authored-by: Kevin Ho <kevinjho1996@gmail.com> * Version Packages (ethereum-optimism#978) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * ci: add sync test's own workflow (ethereum-optimism#1031) * fix(dtl): incorrect parsing of eth_getBlockRange result (ethereum-optimism#1037) * Version Packages (ethereum-optimism#1045) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * build(deps): bump glob-parent from 5.1.1 to 5.1.2 (ethereum-optimism#1036) Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2. - [Release notes](https://github.com/gulpjs/glob-parent/releases) - [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md) - [Commits](gulpjs/glob-parent@v5.1.1...v5.1.2) --- updated-dependencies: - dependency-name: glob-parent dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Liam Horne <liam@lihorne.com> * l2geth: optimize loops (ethereum-optimism#1027) * l2geth: optimize loops * l2geth: stop ticker when done * l2geth: don't wait for first tick * chore: add changeset * Enable custom tagging of release docker image (ethereum-optimism#1048) * ci: enable custom tagging of release docker image * ci: refactor to add prerelease prefix for secuirty * doc: typo * ci: fix indentation issue of canary workflow * ci: fix typo with GITHUB_SHA * fix: typo in USE_HARDHAT config (ethereum-optimism#1023) * l2geth: bump to go 1.15 (ethereum-optimism#1058) * l2geth: bump to go 1.15 * chore: add changeset * Change monotonicity band-aid code to log warnings not errors (ethereum-optimism#1060) * refactor: change monotonicity band-aid code to log warnings not errors * build: add changeset * Ensure Sentry is correctly set up for DTL and MR (ethereum-optimism#1054) * refactor: add logger and metrics to options for BaseService * refactor: thread sentryOptions through from message-relayer into BaseService * refactor: ensure DTL Logger is using Sentry for errors * style: lint base-service.ts * refactor: init Sentry on batch-submitter too * refactor: init Sentry on message-relayer too * refactor: pass in basic logger to MessageRelayerService * build: provide changeset * fix: correct usage of use-sentry boolean config * refactor: appropriately type loggingOptions * build: add @sentry/node * build: add @sentry/node to message-relayer and fix linting issue * Add more logging information to monotonicity violation logs (ethereum-optimism#1066) * refactor: log idx of monotonicity violation from batch * build: add changeset * fix: monotonicity auto healer (ethereum-optimism#1070) * fix: monotonicity auto healer * add: changeset * Version Packages (ethereum-optimism#1053) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix: comment out codeowners (ethereum-optimism#1073) * fix[l2geth]: off-by-one sometimes breaking replica sync (ethereum-optimism#1082) * fix[l2geth]: off-by-one sometimes breaking replica sync * chore: add changeset * fix(l2geth): Log 'end of OVM execution' correctly (ethereum-optimism#1080) * fix[bs]: disambiguate generic submission errors (ethereum-optimism#1051) * fix[bs]: disambiguate generic submission errors * add cases for errors * separate out errors from transaction reverts with reasons * remove extraneous errors * Version Packages (ethereum-optimism#1089) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix: use -z flag for var unset in canary * Use Eslint instead of Tslint (ethereum-optimism#1005) * removed tslint * forgot to commit files * made .eslintrc.js consistent for all subdirs and other cleanup * [removed] includes and files keys from tsconfig.json * removed file level linting exceptions and added details to line level * added changeset * fixed newly introduced linting errors from rebase * enable json import for batch submitter * removed ecdsa-coder * maybe a tsconfig issue? * Update deploy.ts Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: platocrat <37757724+platocrat@users.noreply.github.com> * metrics[batch-submitter]: add new batch submitter metrics (ethereum-optimism#1074) * metrics[batch-submitter]: add new batch submitter metrics * chore: changeset * account for failed submissions * feat[ci]: upload logs for sync tests if failure (ethereum-optimism#1098) * fix[dtl]: defend against RPC provider missing events (ethereum-optimism#1084) * fix[dtl]: defend against RPC provider missing events * chore: add changeset * respond to review comments * better error handling for missing handlers * maintenance[monorepo]: first pass update to README (ethereum-optimism#1106) * maintenance[monorepo]: first pass update to README Doing some relatively minor updates to the README just to clean things up a bit. * replying to review comments * Move the metric prefix string to a label (ethereum-optimism#1047) Added changeset and fixes Changeset to patch * fix[smock]: add support for hardhat 2.4.0 (ethereum-optimism#1112) * fix[smock]: add support for hardhat 2.4.0 * chore: add changeset * lint: fix Co-authored-by: Maurelian <maurelian@protonmail.ch> Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Karl Floersch <karl@karlfloersch.com> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> Co-authored-by: Elena Gesheva <elena@arenabg.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Kevin Ho <kevinjho1996@gmail.com> Co-authored-by: Ben Wilson <82120899+optimisticben@users.noreply.github.com> Co-authored-by: Liam Horne <liam@lihorne.com> Co-authored-by: Tim Myers <timmyers09@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Annie Ke <annieke8@gmail.com> Co-authored-by: Rajiv Patel-O'Connor <rajiv.patel.oconnor@gmail.com> Co-authored-by: platocrat <37757724+platocrat@users.noreply.github.com>
* chore: reduce hardhat timeout to 20 seconds (ethereum-optimism#968) * fix: force LF line endings for scripts to avoid docker problems on Windows (ethereum-optimism#974) * fix: use correct line endings for windows * chore: add changeset * feat: add hardhat deploy instructions to readme (ethereum-optimism#965) * feat: add deployment instructions to readme * Add changeset * fix style * Update README.md * feat: fees v2 (ethereum-optimism#976) * l2 geth: new fee logic * l2 geth: migrate to fees package * core-utils: new fee scheme * chore: add changeset * l2geth: delete dead code * integration-tests: fix typo * integration-tests: fixes * fees: use fee scalar * lint: fix * rollup: correct gas payment comparison * fix(integration-tests): do not hardcode gas price * core-utils: update with new scheme * l2geth: refactor rollup oracle * l2geth: clean up DoEstimateGas * l2geth: implement latest scheme * tests: fix up * lint: fix * l2geth: better sycn service test * optimism: rename to TxGasLimit * fee: fix docstring * tests: fix * variables: rename * l2geth: prevent users from sending txs with too high of a fee * integration-tests: fix import * integration-tests: fix type * integration-tests: fix gas limits * lint: fix * l2geth: log error Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * Add static analysis action (ethereum-optimism#848) * Add static analysis github action setup python and install slither * Add nvmrc file for setting node to v14.17 * Update slither command run to link missing contract packages from monorepo root * Add steps for installing dependencies * Add yarn build step to github action * Enable colour in github action for static analysis * Disable certain detectors * Ensure slither does not fail build * Add instructions on running static analysis to monorepo readme * build(deps): bump ws from 7.4.4 to 7.4.6 in /ops/docker/hardhat (ethereum-optimism#987) Bumps [ws](https://github.com/websockets/ws) from 7.4.4 to 7.4.6. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](websockets/ws@7.4.4...7.4.6) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat[message-relayer]: relay tx generator (ethereum-optimism#952) * feat[message-relayer]: relay tx generator * whoops, I burned our infura key * fix minor bug * add comments * add more comments and clean stuff up * add empty test descriptions * add tests * move smock to dev deps * chore: add changeset * minor cleanup to merkle tree proof function * use bignumber math to avoid nested await * use a better interface * minor fixes and simplifications * backwards compatible dtl syncing (ethereum-optimism#986) * kovan: fix attempt * kovan: db fix * kovan: types are strings from db * l2geth: parse things as strings * chore: add changeset * dtl: also stringify the range query * geth: dereference * geth: assign err * dtl: handle null * dtl: fix unit tests * fix[smock]: fix broken call assertions for overloaded functions (ethereum-optimism#996) * fix[smock]: fix broken call assertions for overloaded functions * chore: add changeset * minor correction and add a test * add a test for non-overloaded functions * fix[message-relayer]: remove spreadsheet mode (ethereum-optimism#998) * fix[message-relayer]: remove spreadsheet mode * chore: add changeset * Lower local rollup timestamp refresh (ethereum-optimism#985) * update rollup timestamp refresh * increase refresh time to 5s * feat: fees v3 (ethereum-optimism#999) * core-utils: fee impl v3 * l2geth: fees v3 impl * integration-tests: update for fees v3 * chore: add changeset * fix: typo * integration-tests: fix and generalize * fees: update fee scalar * l2geth: check gas in the mempool behind usingovm * tests: fix up * l2geth: remove dead var * truffle: fix config * fix: remove dead coders (ethereum-optimism#1001) * chore: delete dead coders * chore: add changeset * dtl: remove dead imports * core-utils: delete dead tests * batch-submitter: remove txtype * chore: add changeset * docs[message-relayer]: add a README and improve the interface for generating proofs (ethereum-optimism#1002) * docs[message-relayer]: add basic docs and clean up an interface * chore: add changeset * dtl: log error stack for failed http request (ethereum-optimism#995) * dtl: log error stack for failed http request * chore: add changeset * Add rpc-proxy service for whitelisting JSON RPC methods to the sequencer. (ethereum-optimism#945) * Add healthcheck endpoint for rpc-proxy Added ethereum-nginx-proxy source updated README and docker image build * Check ETH_CALLS_ALLOWED is set, clean up comments, remove old Dockerfile * feat: deployment config for fee oracle contract (ethereum-optimism#936) * feat[contracts]: add GasPriceOracle w/o predeploy Based on ethereum-optimism#912 * feat[contracts]: congestion price oracle * chore: add changeset * contracts: gas price oracle (ethereum-optimism#917) * contracts: gas price oracle * tests: update * fees: fix tests * contracts: simplify gas price oracle * lint: fix * test: execution price is at the 1st storage slot * chore: rename predeploy to GasPriceOracle * chore: rename gas price oracle test name Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * Add an L2 deploy script for gas oracle contract * Add a kovan deployment artifact * Add deployment to readme * Add extra validation & initial execution price * Update README.md * Fix execution price logic * Perform new deployment with final contract * contracts: better require in ovm gas price oracle * Deploy L2GasPriceOracle * Update contract to use new fee logic & rename to gas * Deploy updated contract * Fix lint * gas price oracle: do not restrict gas price * gas price oracle: new deployment * tests: delete dead test Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * ops: expose debug namespace (ethereum-optimism#1007) * fix(sync-service): prevent underflows (ethereum-optimism#1015) * fix(sync-service): prevent underflows * chore: add changeset * chore: remove dead confirmation depth * chore: remove eth1conf depth from rollup config * test: remove duplicate value in array (ethereum-optimism#1014) * ci: tag docker image for canary with abbreviated GITHUB_SHA (ethereum-optimism#1006) * ci: tag docker image for canary with abbreviated GITHUB_SHA * ci: update from 6 bytes to 8 bytes of abbreviation * refactor: improve logging for transactions being submitted to chain with gasPrice (ethereum-optimism#1016) * refactor: improve logging for transactions being submitted to chain with gasPrice * lint: apply lint autofixes * ci: upload logs for failed integration tests (ethereum-optimism#1020) * fix(dtl): improve slow blocking JSON parsing that occurs during l2 sync (ethereum-optimism#1019) The use of eth_getBlockRange returns a large response which is very slow to parse in ethersjs, and can block the event loop for upwards of multiple seconds. When this happens, incoming http requests will likely timeout and fail. Instead, we will parse the incoming http stream directly with the bfj package, which yields the event loop periodically so that we don't fail to serve requests. * fix: lint errors in dtl (ethereum-optimism#1025) * fix[dtl]: fix dtl bug breaking verifiers (ethereum-optimism#1011) * fix[dtl]: fix dtl bug breaking verifiers * tweaks so tests pass * chore: add changeset * fix: deterministic blockhashes (ethereum-optimism#1032) * config: set etherbase * l2geth: add deterministic clique key * l2geth: default value * chore: add changeset * test: add sync test for deterministic blockhash Co-authored-by: Kevin Ho <kevinjho1996@gmail.com> * Version Packages (ethereum-optimism#978) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * ci: add sync test's own workflow (ethereum-optimism#1031) * fix(dtl): incorrect parsing of eth_getBlockRange result (ethereum-optimism#1037) * Version Packages (ethereum-optimism#1045) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * build(deps): bump glob-parent from 5.1.1 to 5.1.2 (ethereum-optimism#1036) Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2. - [Release notes](https://github.com/gulpjs/glob-parent/releases) - [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md) - [Commits](gulpjs/glob-parent@v5.1.1...v5.1.2) --- updated-dependencies: - dependency-name: glob-parent dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Liam Horne <liam@lihorne.com> * l2geth: optimize loops (ethereum-optimism#1027) * l2geth: optimize loops * l2geth: stop ticker when done * l2geth: don't wait for first tick * chore: add changeset * Enable custom tagging of release docker image (ethereum-optimism#1048) * ci: enable custom tagging of release docker image * ci: refactor to add prerelease prefix for secuirty * doc: typo * ci: fix indentation issue of canary workflow * ci: fix typo with GITHUB_SHA * fix: typo in USE_HARDHAT config (ethereum-optimism#1023) * l2geth: bump to go 1.15 (ethereum-optimism#1058) * l2geth: bump to go 1.15 * chore: add changeset * Change monotonicity band-aid code to log warnings not errors (ethereum-optimism#1060) * refactor: change monotonicity band-aid code to log warnings not errors * build: add changeset * Ensure Sentry is correctly set up for DTL and MR (ethereum-optimism#1054) * refactor: add logger and metrics to options for BaseService * refactor: thread sentryOptions through from message-relayer into BaseService * refactor: ensure DTL Logger is using Sentry for errors * style: lint base-service.ts * refactor: init Sentry on batch-submitter too * refactor: init Sentry on message-relayer too * refactor: pass in basic logger to MessageRelayerService * build: provide changeset * fix: correct usage of use-sentry boolean config * refactor: appropriately type loggingOptions * build: add @sentry/node * build: add @sentry/node to message-relayer and fix linting issue * Add more logging information to monotonicity violation logs (ethereum-optimism#1066) * refactor: log idx of monotonicity violation from batch * build: add changeset * fix: monotonicity auto healer (ethereum-optimism#1070) * fix: monotonicity auto healer * add: changeset * Version Packages (ethereum-optimism#1053) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix: comment out codeowners (ethereum-optimism#1073) * fix[l2geth]: off-by-one sometimes breaking replica sync (ethereum-optimism#1082) * fix[l2geth]: off-by-one sometimes breaking replica sync * chore: add changeset * fix(l2geth): Log 'end of OVM execution' correctly (ethereum-optimism#1080) * fix[bs]: disambiguate generic submission errors (ethereum-optimism#1051) * fix[bs]: disambiguate generic submission errors * add cases for errors * separate out errors from transaction reverts with reasons * remove extraneous errors * Version Packages (ethereum-optimism#1089) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix: use -z flag for var unset in canary * Use Eslint instead of Tslint (ethereum-optimism#1005) * removed tslint * forgot to commit files * made .eslintrc.js consistent for all subdirs and other cleanup * [removed] includes and files keys from tsconfig.json * removed file level linting exceptions and added details to line level * added changeset * fixed newly introduced linting errors from rebase * enable json import for batch submitter * removed ecdsa-coder * maybe a tsconfig issue? * Update deploy.ts Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: platocrat <37757724+platocrat@users.noreply.github.com> * metrics[batch-submitter]: add new batch submitter metrics (ethereum-optimism#1074) * metrics[batch-submitter]: add new batch submitter metrics * chore: changeset * account for failed submissions * feat[ci]: upload logs for sync tests if failure (ethereum-optimism#1098) * fix[dtl]: defend against RPC provider missing events (ethereum-optimism#1084) * fix[dtl]: defend against RPC provider missing events * chore: add changeset * respond to review comments * better error handling for missing handlers * maintenance[monorepo]: first pass update to README (ethereum-optimism#1106) * maintenance[monorepo]: first pass update to README Doing some relatively minor updates to the README just to clean things up a bit. * replying to review comments * Move the metric prefix string to a label (ethereum-optimism#1047) Added changeset and fixes Changeset to patch * fix[smock]: add support for hardhat 2.4.0 (ethereum-optimism#1112) * fix[smock]: add support for hardhat 2.4.0 * chore: add changeset * lint: fix * build(deps): bump hosted-git-info from 2.8.8 to 2.8.9 (ethereum-optimism#1064) Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.8 to 2.8.9. - [Release notes](https://github.com/npm/hosted-git-info/releases) - [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md) - [Commits](npm/hosted-git-info@v2.8.8...v2.8.9) --- updated-dependencies: - dependency-name: hosted-git-info dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: smartcontracts <kelvinfichter@gmail.com> * Misc. small improvements to README (ethereum-optimism#1115) * Update README.md * Update README.md Co-authored-by: Maurelian <maurelian@protonmail.ch> Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Karl Floersch <karl@karlfloersch.com> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> Co-authored-by: Elena Gesheva <elena@arenabg.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Kevin Ho <kevinjho1996@gmail.com> Co-authored-by: Ben Wilson <82120899+optimisticben@users.noreply.github.com> Co-authored-by: Liam Horne <liam@lihorne.com> Co-authored-by: Tim Myers <timmyers09@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Annie Ke <annieke8@gmail.com> Co-authored-by: Rajiv Patel-O'Connor <rajiv.patel.oconnor@gmail.com> Co-authored-by: platocrat <37757724+platocrat@users.noreply.github.com>
* chore: reduce hardhat timeout to 20 seconds (ethereum-optimism#968) * fix: force LF line endings for scripts to avoid docker problems on Windows (ethereum-optimism#974) * fix: use correct line endings for windows * chore: add changeset * refactor[contracts]: Turn ExecutionManagerWrapper into a predeployed contract (ethereum-optimism#808) * wip: Started working on L2 contract testing revamp * test: clean tests for ProxyEOA * style: clean imports for ProxyEOA tests * test: port tests for ECDSAContractAccount * fix tests and add wrapper to dump * fix: add em wrapper to l2 deploy * ffix: add comments to wrapper contract * fix: add more comments * fix: add smock comment for unbind * Update packages/smock/src/smockit/binding.ts * maintenance[contracts]: use dashes in chain container names (ethereum-optimism#819) * maintenance: use dashes in chain container names * chore: add changeset * feat[contracts]: temporarily disable EOA upgrades (ethereum-optimism#857) * feat[contracts]: disable eoa upgrades temporarily * chore: add changeset * Update OVM_ProxyEOA.sol * fix: turn upgrade into a noop * lint: fix * feat[contracts]: Update Lib_AddressManager.AddressSet event to speed up data transport layer (ethereum-optimism#820) * feat: update and improve AddressSet event * chore: add changeset * Update Lib_AddressManager.sol * Reduce gas costs of deposits (ethereum-optimism#667) * Remove messageNonce from BaseCrossDomainMessenger and use CTC queue lenght instead Remove Abs_BaseCrossDomainMessenger and restore dedicated nonce generation in OVM_L2CrossDomainMessenger Fix typo * Remove sentMessages mapping from L1CrossDomainMessenger storage and use the nonce to check for existence of replayed transaction * Refactor out common library function for getting cross domain calldata * Post rebase fixes * Use the queueIndex to check the transaction was enqueued * Fix tests for L1CrossDomainMessenger.replayMessage Also make that test work with an actual CanonicalTransactionChain implementation rather than a smock * Lint fixes * Optimise the resolve calls into the AddressManager lib * Rename the nonce parameter to be clear * Update test name Co-authored-by: ben-chain <ben@pseudonym.party> * Rename getXDomainCalldata to encodeXDomainCalldata to match the new Lib_CrossDomainUtils Co-authored-by: ben-chain <ben@pseudonym.party> * optimism: bump gaslimit to 10 million ethereum-optimism#870 (ethereum-optimism#871) * optimism: bump gaslimit to 10million * chore: add changeset * optimism: bump max gaslimit to 10 mil * chore: add changeset * chore: remove unnecessary changeset * chore: remove unnecessary changeset Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * fix: use correct contract name in tests (ethereum-optimism#921) * fix: disable upgradability from ECDSA Account (ethereum-optimism#885) * l2geth: remove `SignatureHashType` (ethereum-optimism#752) * l2geth: remove tx type * l2geth: no longer parse type in rollup client * chore: add changeset * chore: remove extra sighash params * fix: do not check txtype in integration tests Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * feat[contracts]: introduce OVM_GasPriceOracle (ethereum-optimism#912) * feat[contracts]: congestion price oracle * chore: add changeset * contracts: gas price oracle (ethereum-optimism#917) * contracts: gas price oracle * tests: update * fees: fix tests * contracts: simplify gas price oracle * lint: fix * test: execution price is at the 1st storage slot * chore: rename predeploy to GasPriceOracle * chore: rename gas price oracle test name Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * fix: configure max gas limit to 11m (ethereum-optimism#928) Uniswap V3 contracts require that, otherwise they throw call exceptions at deployment * Consolidate Predeploy Addresses (ethereum-optimism#931) * added library for predeploy addresses * refactor tests and other packages to use exported predeploys * revert library usage in OVM_ECDSAContractAccount * lint * added newline * fixed address typos Co-authored-by: rajivpo <rajivpatel-oconnor@Rajivs-MacBook-Pro-2.local> Co-authored-by: smartcontracts <kelvinfichter@gmail.com> * chore: remove yarn-error.log and gitignore it (ethereum-optimism#956) * feat[contracts]: Replace Lib_RingBuffer with a much simpler Lib_Buffer (ethereum-optimism#821) * feat[contracts]: replace Lib_RingBuffer with a simpler Lib_Buffer * chore: changeset * test: add tests for Lib_Buffer * lint: fix * test: add extra coverage for Lib_Buffer * Update packages/contracts/contracts/optimistic-ethereum/libraries/utils/Lib_Buffer.sol Co-authored-by: ben-chain <ben@pseudonym.party> * add some extra comments Co-authored-by: ben-chain <ben@pseudonym.party> * fix(contracts): import predeploys (ethereum-optimism#982) * fix(contracts): import predeploys * fix: lint * feat: add hardhat deploy instructions to readme (ethereum-optimism#965) * feat: add deployment instructions to readme * Add changeset * fix style * Update README.md * feat: fees v2 (ethereum-optimism#976) * l2 geth: new fee logic * l2 geth: migrate to fees package * core-utils: new fee scheme * chore: add changeset * l2geth: delete dead code * integration-tests: fix typo * integration-tests: fixes * fees: use fee scalar * lint: fix * rollup: correct gas payment comparison * fix(integration-tests): do not hardcode gas price * core-utils: update with new scheme * l2geth: refactor rollup oracle * l2geth: clean up DoEstimateGas * l2geth: implement latest scheme * tests: fix up * lint: fix * l2geth: better sycn service test * optimism: rename to TxGasLimit * fee: fix docstring * tests: fix * variables: rename * l2geth: prevent users from sending txs with too high of a fee * integration-tests: fix import * integration-tests: fix type * integration-tests: fix gas limits * lint: fix * l2geth: log error Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * Add static analysis action (ethereum-optimism#848) * Add static analysis github action setup python and install slither * Add nvmrc file for setting node to v14.17 * Update slither command run to link missing contract packages from monorepo root * Add steps for installing dependencies * Add yarn build step to github action * Enable colour in github action for static analysis * Disable certain detectors * Ensure slither does not fail build * Add instructions on running static analysis to monorepo readme * build(deps): bump ws from 7.4.4 to 7.4.6 in /ops/docker/hardhat (ethereum-optimism#987) Bumps [ws](https://github.com/websockets/ws) from 7.4.4 to 7.4.6. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](websockets/ws@7.4.4...7.4.6) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix[l2geth]: fix accidental merge conflict (ethereum-optimism#994) * feat[message-relayer]: relay tx generator (ethereum-optimism#952) * feat[message-relayer]: relay tx generator * whoops, I burned our infura key * fix minor bug * add comments * add more comments and clean stuff up * add empty test descriptions * add tests * move smock to dev deps * chore: add changeset * minor cleanup to merkle tree proof function * use bignumber math to avoid nested await * use a better interface * minor fixes and simplifications * backwards compatible dtl syncing (ethereum-optimism#986) * kovan: fix attempt * kovan: db fix * kovan: types are strings from db * l2geth: parse things as strings * chore: add changeset * dtl: also stringify the range query * geth: dereference * geth: assign err * dtl: handle null * dtl: fix unit tests * fix[smock]: fix broken call assertions for overloaded functions (ethereum-optimism#996) * fix[smock]: fix broken call assertions for overloaded functions * chore: add changeset * minor correction and add a test * add a test for non-overloaded functions * fix[message-relayer]: fix failing test because of merge with develop (ethereum-optimism#1000) * fix[message-relayer]: remove spreadsheet mode (ethereum-optimism#998) * fix[message-relayer]: remove spreadsheet mode * chore: add changeset * Lower local rollup timestamp refresh (ethereum-optimism#985) * update rollup timestamp refresh * increase refresh time to 5s * feat: fees v3 (ethereum-optimism#999) * core-utils: fee impl v3 * l2geth: fees v3 impl * integration-tests: update for fees v3 * chore: add changeset * fix: typo * integration-tests: fix and generalize * fees: update fee scalar * l2geth: check gas in the mempool behind usingovm * tests: fix up * l2geth: remove dead var * truffle: fix config * fix: remove dead coders (ethereum-optimism#1001) * chore: delete dead coders * chore: add changeset * dtl: remove dead imports * core-utils: delete dead tests * batch-submitter: remove txtype * chore: add changeset * docs[message-relayer]: add a README and improve the interface for generating proofs (ethereum-optimism#1002) * docs[message-relayer]: add basic docs and clean up an interface * chore: add changeset * dtl: log error stack for failed http request (ethereum-optimism#995) * dtl: log error stack for failed http request * chore: add changeset * Add rpc-proxy service for whitelisting JSON RPC methods to the sequencer. (ethereum-optimism#945) * Add healthcheck endpoint for rpc-proxy Added ethereum-nginx-proxy source updated README and docker image build * Check ETH_CALLS_ALLOWED is set, clean up comments, remove old Dockerfile * Pass additional information across domains via token gateways (ethereum-optimism#824) * feat(contracts): add from and data args to L1ERC20Gateway fix(integration): add gasLimit to fundUser refactor(contracts): add data to gateway events add changeset fix(integration): provide data in outboundTransfer refactor(contracts): reset Abs_L2TokenGateway to Abs_L2DepositedToken refactor(contracts): fix mismatched names * feat[contracts]: add custom gas arg to gateway fix(contracts): take max of user vs. default gas * fix(integrations): update ovm-eth function call * fix(integration): remove unecessary explicit gasLimit * test(contracts): 32kb transfer, 9MM gas * fix(contracts): fixup comment, bytes arg last * fix(integration): args order in integrations * fix(contracts): remove unused L2 gas arg * fix(contracts): limit data that can be passed to L2 * fix(integration): better tests for data length * test: check for error on too large data * Experimental: specify gaslimit in before hook * fix(integration): add l2 gas argument * fix: increase gas on fundUser * fix(contracts): remove duplicate max size limit * fix(integration): fine tune gas amounts * lint * fix: large data test * fix(integration): set gas closer to real cost * fix(contracts): remove unused bridge variables These variables were the default gas amounts for cross domain messages * fix(contracts): Reorder args Place dynamic length args last * fix(integration): update estimateGas values * fix(integration): reset eth withdraw estimate to 21000 * fix(integration): update expected gas amount * fix(integration): reduce gas amount for ETH withdraw * More consistent style for Constant values (ethereum-optimism#991) * chore(contracts): make container addresses be constants chore(contracts): consistent style for constant vars * chore(contracts): add internal on predeploy constants * feat: deployment config for fee oracle contract (ethereum-optimism#936) * feat[contracts]: add GasPriceOracle w/o predeploy Based on ethereum-optimism#912 * feat[contracts]: congestion price oracle * chore: add changeset * contracts: gas price oracle (ethereum-optimism#917) * contracts: gas price oracle * tests: update * fees: fix tests * contracts: simplify gas price oracle * lint: fix * test: execution price is at the 1st storage slot * chore: rename predeploy to GasPriceOracle * chore: rename gas price oracle test name Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * Add an L2 deploy script for gas oracle contract * Add a kovan deployment artifact * Add deployment to readme * Add extra validation & initial execution price * Update README.md * Fix execution price logic * Perform new deployment with final contract * contracts: better require in ovm gas price oracle * Deploy L2GasPriceOracle * Update contract to use new fee logic & rename to gas * Deploy updated contract * Fix lint * gas price oracle: do not restrict gas price * gas price oracle: new deployment * tests: delete dead test Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * ops: expose debug namespace (ethereum-optimism#1007) * develop merge fixes * refactor[l2geth]: queue origin type (ethereum-optimism#975) * refactor: queueOrigin type * Convert queueOrigin to uint8 in encode * Add changeset * Regenerate json marshall * style: combine lines * Add Stringer for QueueOrigin * Turn QueueOrigin into uint8 * l2geth: gen tx meta fix * l2geth: gen tx meta fix * lint Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> * fix(sync-service): prevent underflows (ethereum-optimism#1015) * fix(sync-service): prevent underflows * chore: add changeset * chore: remove dead confirmation depth * chore: remove eth1conf depth from rollup config * test: remove duplicate value in array (ethereum-optimism#1014) * ci: tag docker image for canary with abbreviated GITHUB_SHA (ethereum-optimism#1006) * ci: tag docker image for canary with abbreviated GITHUB_SHA * ci: update from 6 bytes to 8 bytes of abbreviation * refactor: improve logging for transactions being submitted to chain with gasPrice (ethereum-optimism#1016) * refactor: improve logging for transactions being submitted to chain with gasPrice * lint: apply lint autofixes * dtl: remove stringify from db logic + more overflow protection (ethereum-optimism#1010) * dtl: remove stringify from db logic * l2geth: overflow protection * dtl: overflow protection * chore: add changeset * ci: upload logs for failed integration tests (ethereum-optimism#1020) * fix(dtl): improve slow blocking JSON parsing that occurs during l2 sync (ethereum-optimism#1019) The use of eth_getBlockRange returns a large response which is very slow to parse in ethersjs, and can block the event loop for upwards of multiple seconds. When this happens, incoming http requests will likely timeout and fail. Instead, we will parse the incoming http stream directly with the bfj package, which yields the event loop periodically so that we don't fail to serve requests. * fix: lint errors in dtl (ethereum-optimism#1025) * fix[dtl]: fix dtl bug breaking verifiers (ethereum-optimism#1011) * fix[dtl]: fix dtl bug breaking verifiers * tweaks so tests pass * chore: add changeset * fix: deterministic blockhashes (ethereum-optimism#1032) * config: set etherbase * l2geth: add deterministic clique key * l2geth: default value * chore: add changeset * test: add sync test for deterministic blockhash Co-authored-by: Kevin Ho <kevinjho1996@gmail.com> * Version Packages (ethereum-optimism#978) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * ci: add sync test's own workflow (ethereum-optimism#1031) * fix(dtl): incorrect parsing of eth_getBlockRange result (ethereum-optimism#1037) * Version Packages (ethereum-optimism#1045) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix: no gas refund (ethereum-optimism#1043) * l2geth: remove the gas refund * chore: add changeset * refactor[contracts]: remove one-off GasPriceOracle deployment file (ethereum-optimism#1046) * refactor[contracts]: remove one-off gpo deployment * chore: add changeset * feat[contracts]: introduce new L1ChugSplashProxy contract (ethereum-optimism#1009) * feat[contracts]: add L1ChugSplashProxy * improve comments slightly * start adding tests * add more tests * make the system pausable * added another test * add some extra comments * Update packages/contracts/test/contracts/chugsplash/L1ChugSplashProxy.spec.ts Co-authored-by: Maurelian <maurelian@protonmail.ch> * Update packages/contracts/test/contracts/chugsplash/L1ChugSplashProxy.spec.ts Co-authored-by: Maurelian <maurelian@protonmail.ch> * chore: add changeset * address review feedback Co-authored-by: Maurelian <maurelian@protonmail.ch> * feat[contracts]: add sequencer fee wallet (ethereum-optimism#1029) * wip: first draft of the fee wallet * add fee wallet to dump * rename to sequencer vault * add L1 fee wallet to geth config * add unit tests * fix geth linting error * add a basic integration test * fix broken integration test * add test for correct storage slot * add integration test for fee withdrawal * fix typo in integration tests * fix a bug bin integration tests * Update OVM_SequencerFeeVault.sol * fix bug in contract tests * chore: add changeset * fix bug in contract tests * build(deps): bump glob-parent from 5.1.1 to 5.1.2 (ethereum-optimism#1036) Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2. - [Release notes](https://github.com/gulpjs/glob-parent/releases) - [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md) - [Commits](gulpjs/glob-parent@v5.1.1...v5.1.2) --- updated-dependencies: - dependency-name: glob-parent dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Liam Horne <liam@lihorne.com> * fix: predeploy gasprice oracle (ethereum-optimism#1039) * l2geth: delete extra config options * l2geth: stop using extra config options * l2geth: more stop using extra config options * chore: add changeset * l2geth: add new config for gpo owner * chore: add changeset * l2geth: fix tests * tests: fix build * l2geth: optimize loops (ethereum-optimism#1027) * l2geth: optimize loops * l2geth: stop ticker when done * l2geth: don't wait for first tick * chore: add changeset * Enable custom tagging of release docker image (ethereum-optimism#1048) * ci: enable custom tagging of release docker image * ci: refactor to add prerelease prefix for secuirty * doc: typo * ci: fix indentation issue of canary workflow * ci: fix typo with GITHUB_SHA * fix: typo in USE_HARDHAT config (ethereum-optimism#1023) * fix: abi encoded tx (ethereum-optimism#1049) * contracts: don't double rlp decode * chore: add changeset * lint: fix * deps: update * linting: cleanup * feat: contracts: use selector * fix: contracts: use typescript * contracts: use interface * l2geth: bump to go 1.15 (ethereum-optimism#1058) * l2geth: bump to go 1.15 * chore: add changeset * Change monotonicity band-aid code to log warnings not errors (ethereum-optimism#1060) * refactor: change monotonicity band-aid code to log warnings not errors * build: add changeset * feat(contracts, l2geth): native ETH value support for ovmCALL (ethereum-optimism#1038) * feat(contracts): add ovmCALL-types with native value * add ovmCALLVALUE context * add ovmBALANCE * test success and revert cases * test empty contract case * chore: lint * test(integration-tests): ovmCALL-types with value (compiler and wrapper) * fix ovmDELEGATECALL type, update tests * add ovmSELFBALANCE * fix ovmDELEGATECALL jumping to CALL * chore: lint * fix(contracts): account for intrinsic gas of OVM_ETH sends * fix(contracts): merge conflict bug * fix(contracts): update gas benchmark * feat(contracts, integration-tests): use new value-compatible compiler * feat(contracts,l2geth): support value calls in OVM_ECDSAContractAccount * fix(contracts): ovmDELEGATECALL does not change message context * feat(contracts): sending value between EOAs * test(integration-tests): ovmDELEGATECALL preserves ovmCALLVALUE * test(integration-tests): assert ovmSELFBALANCEs correct * test(integration-tests): intrinsic gas for eth value calls * test(integration-tests): update gas values * chore(contracts): lint * feat(contracts, l2geth): eth_calls with nonzero value * chore: minor fixups and comments based on PR feedback * test(integration-tests): add requested tests from PR reviews * test(integration-tests): ovmSELFBALANCE is preserved in ovmDELEGATECALLs * fix(contracts): fix bug where ovmDELEGATECALL could fail if balance was lower than the ovmCALLVALUE * chore: add changeset * fix(contracts): update intrinsic gas for worst-case value sends * chore: address final PR nits/improvements Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com> * Add erc1271 support to contract account (ethereum-optimism#1052) * add ERC1271 support, failing unit tests * add integration test for isValidSignature * remove .only * lint * add changeset * clean up 1271 tests and lint * switch back to using waffle wallet * lint * fix import * feat[contracts]: slightly better account funding for hardhat accounts (rebased) (ethereum-optimism#1065) * feat[contracts]: better account funding for hardhat accounts * add a sleep to avoid any potential problems * chore: add changeset * fix: bug with gas estimation in funding step * fix: limit to 20 accounts max Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com> * Ensure Sentry is correctly set up for DTL and MR (ethereum-optimism#1054) * refactor: add logger and metrics to options for BaseService * refactor: thread sentryOptions through from message-relayer into BaseService * refactor: ensure DTL Logger is using Sentry for errors * style: lint base-service.ts * refactor: init Sentry on batch-submitter too * refactor: init Sentry on message-relayer too * refactor: pass in basic logger to MessageRelayerService * build: provide changeset * fix: correct usage of use-sentry boolean config * refactor: appropriately type loggingOptions * build: add @sentry/node * build: add @sentry/node to message-relayer and fix linting issue * Add more logging information to monotonicity violation logs (ethereum-optimism#1066) * refactor: log idx of monotonicity violation from batch * build: add changeset * temporarily disable hardhat example tests (ethereum-optimism#1071) * fix: monotonicity auto healer (ethereum-optimism#1070) * fix: monotonicity auto healer * add: changeset * Version Packages (ethereum-optimism#1053) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Standard token bridge (ethereum-optimism#988) * Remove abstract token gateway and deposited token implementations * Further simplification of bridge contracts * Standart token bridge and L2 token implementation * Fix spacing * Implement case when a bad deposit happens to a nonexistent L1<>L2 token pair * Use SafeMath in common token bridge accounting * test(contracts): fix finalizeWithdrawal test * fix(contracts): use SafeERC20 on token deposits * Rename OVM_L1ERC20Gateway to OVM_L1ERC20Bridge contract * Rename iOVM_L1ERC20Gateway to iOVM_L1ERC20Bridge contract * Cleanup gateway to bridge rename * Better name for the mapping holding l1->l2 deposit amounts * Use OZ SafeMath * Rename local variables in OVM_L2DepositedERC20 from gateway to bridge * Merge ETH and ERC20 bridge contracts * Rename OVM_L1ERC20Bridge to OVM_L1StandardBridge and fix tests from merging the ETH and ERC20 bridges * Better name for iAbs_BaseCrossDomainMessenger -> iOVM_CrossDomainMessenger * Correct the bounce back of deposit sender and recipient properties * Remove obsoleted event from OVM_L2DepositedERC20 * chore(contracts): change references from ETHGateway to Bridge * Fix a linting error * fix(contracts): add bridge to deployer * Split off ERC20Bridge interface for the purposes of being reused in custom ERC20 bridges * Split off interface natspec definitions * Draft version of OVM_L2DepositedERC20 splitted into a standard L2 erc20: L2StandardERC20 and a common L2 bridge: OVM_L2StandardBridge * style(contracts): define L1_ETH_ADDRESS as constant * test(integration): update interface to use depositETH * test(contracts): fix OVM_L1StandardBridge tests * test(contracts): fix L2 Standard Bridge tests * test(contracts): lint and remove an obsolete test case * Fix modifier check to comply with the L2 bridge distinction from L2 token * Simplify address <> interface casting in bridges * Ensure natspec comments are correct also add l1 and l2 token params to WithdrawalInitiated event for consistency * Fix issues in L1 and L2 bridges to ensure cross domain messages are sent only between the two bridges also adjusted withdrawals to send to either finalizeETHWithdrawal or finalizeERC20Withdrawal depending on which asset is being withdrawn * Remove AddressManager from the L1 standard bridge * REVERT ME: instruments cross domain enabled * fix(contracts): remove Address Manager from L1 Bridge * feat(contracts): make L2 Standard Bridge a predeploy * WIP: update deployments for standard bridges * WIP: update deployments for standard bridges * l2geth: TEMP log contract calls * chore(l2geth): replace eth gateway with standard bridge * fix(contracts): make contract-deployment/config work * WIP fix(integration): update integration tests for bridge * Remove ovmEth from L1 Standard bridge as obsoleted * Separate ERC20 standard implementation from L2 bridge * Formatting fixes * chore(l2geth): replace eth gateway with standard bridge * Revert "REVERT ME: instruments cross domain enabled" This reverts commit d5bb8f8. * fix: lint ts * Implement EIP-165 in the Standard L2 ERC20 token Also switch that to be based off the OpenZeppelin default implementation plus mint and burn Additionally remove the obsoleted iOVM_ERC20 * fix(contracts): add deployment check on bridge proxy fix(contracts): whitespace fix(contracts): init bridge implementation with non-zero address * Remove dependency on Ownable contract for the StandardERC20 token on L2 * fix(contracts): update deployment scripts * fix: lint * remove debugging code * fix: correct rpc get balance slot * restore l2 cross domain messenger * fix: lint * Add a test for a non compliant token deposit * Only allow EOAs to deposit ETH and ERC20 * Add comments and tests for ERC165 implementation * Decide against using explicit ETH MOCK address as we're not using it for checks * Fix linting issues * Add onlyEOAContract restriction to standard bridge withdrawals * Update codehashes in L2 Standard bridge * fix(ops): remove unintentionally added file * feat(contracts): add expectApproxGasCost function * fix(integration): proper arrayify input on fundUser * fix(integration): proper gas value checks * Revert "Add onlyEOAContract restriction to standard bridge withdrawals" This reverts commit 2713c06ceb2609e4f13718e1034a4d76210d9758. * fix(contracts): removed unused expectApproxGasCost for now * fix(contracts): update OVM_SequencerFeeVault for bridge changes * lint * Update deployment for L1 Bridge w/ ChugSplash * Revert "l2geth: TEMP log contract calls" This reverts commit 21d42259278449f221bf34605162229b3d9d4fa9. * Apply suggestions from code review * Apply suggestions from code review * fix(contracts): deploy with chugsplash proxy * fix(contracts): add working bridge and chugsplash proxy deployment * fix(contracts,integration): 500k gas for depositETH * comment(contracts): describe failed deposit handling on l2 * Apply suggestions from code review Co-authored-by: ben-chain <ben@pseudonym.party> * docs: add changeset * fix(integration): set working l2 gas amount on funduser * test(integration): add receive() test * fix(contracts): reset receive to 1.2MM l2 gas * test(examples): skip l1-l2 example test for now * fix(contracts): drop hardcoded gas to 500k in receive() * fix(contracts): use abi.encodeWithSignature * fix(contracts): resolve merge conflicts * feat(integration): add expectApprox for flexible gas testing * fix(integration): fix failing gas tests * fix: incorrect l2 gas for deposit * Update utils.ts * fix(workflow): disable l1-l2 example until npm imports are fixed * chore: final round of PR review nits and tests Co-authored-by: Maurelian <maurelian@protonmail.ch> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: ben-chain <ben@pseudonym.party> Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com> * fix: comment out codeowners (ethereum-optimism#1073) * fix: use predeploy constant lib for em wrapper (ethereum-optimism#1075) * fix: use predeploy constant lib for em wrapper * chore: add changeset * fix[l2geth]: off-by-one sometimes breaking replica sync (ethereum-optimism#1082) * fix[l2geth]: off-by-one sometimes breaking replica sync * chore: add changeset * fix(l2geth): Log 'end of OVM execution' correctly (ethereum-optimism#1080) * refactor[contracts]: move account contracts to predeploy folder (ethereum-optimism#1085) * refactor[contracts]: move account contracts to predeploy folder * chore: add changeset * maintenance[contracts]: rename precompiles test folder to predeploys (ethereum-optimism#1086) * fix[bs]: disambiguate generic submission errors (ethereum-optimism#1051) * fix[bs]: disambiguate generic submission errors * add cases for errors * separate out errors from transaction reverts with reasons * remove extraneous errors * WETH deposit and withdraw on OVM_ETH (ethereum-optimism#1083) * feat(contracts): add no-op WETH9 functionality to OVM_ETH * working WETH deposit and withdraw + tests * add changeset * address PR feedback * update WETH9 contract implementation * add fallback to WETH9 * add fallback and revert withdraw test * update nit comment Co-authored-by: ben <ben@pseudonym.party> * Also move the accounts interface to iOVM/predeploys (ethereum-optimism#1087) * refactor[contracts]: move account interface to predeploy folder * chore: add changeset * Version Packages (ethereum-optimism#1089) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix: use -z flag for var unset in canary * Use Eslint instead of Tslint (ethereum-optimism#1005) * removed tslint * forgot to commit files * made .eslintrc.js consistent for all subdirs and other cleanup * [removed] includes and files keys from tsconfig.json * removed file level linting exceptions and added details to line level * added changeset * fixed newly introduced linting errors from rebase * enable json import for batch submitter * removed ecdsa-coder * maybe a tsconfig issue? * Update deploy.ts Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: platocrat <37757724+platocrat@users.noreply.github.com> * metrics[batch-submitter]: add new batch submitter metrics (ethereum-optimism#1074) * metrics[batch-submitter]: add new batch submitter metrics * chore: changeset * account for failed submissions * Fix canary publishing (ethereum-optimism#1093) * ci: fix custom docker tag * ci: use new env file * ci: use outputs from previous job * ci: fix headers of jobs * ci: inherit canary tag from builder * feat[ci]: upload logs for sync tests if failure (ethereum-optimism#1098) * deploy: goerli 0.4.0 (ethereum-optimism#1099) * deployments: goerli 0.4.0 rc * readme: update * chore: add changeset * fix[dtl]: defend against RPC provider missing events (ethereum-optimism#1084) * fix[dtl]: defend against RPC provider missing events * chore: add changeset * respond to review comments * better error handling for missing handlers * deploy: kovan v.4.0 rc (ethereum-optimism#1101) * deploy: kovan v0.4.0 rc * chore: add changeset * readme: update * maintenance[monorepo]: first pass update to README (ethereum-optimism#1106) * maintenance[monorepo]: first pass update to README Doing some relatively minor updates to the README just to clean things up a bit. * replying to review comments * Move the metric prefix string to a label (ethereum-optimism#1047) Added changeset and fixes Changeset to patch * fix[smock]: add support for hardhat 2.4.0 (ethereum-optimism#1112) * fix[smock]: add support for hardhat 2.4.0 * chore: add changeset * lint: fix * build(deps): bump hosted-git-info from 2.8.8 to 2.8.9 (ethereum-optimism#1064) Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.8 to 2.8.9. - [Release notes](https://github.com/npm/hosted-git-info/releases) - [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md) - [Commits](npm/hosted-git-info@v2.8.8...v2.8.9) --- updated-dependencies: - dependency-name: hosted-git-info dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: smartcontracts <kelvinfichter@gmail.com> * Misc. small improvements to README (ethereum-optimism#1115) * Update README.md * Update README.md * fix[dtl]: use the same L2 chain ID everywhere (ethereum-optimism#1122) * fix[dtl]: use the same L2 chain ID everywhere * chore: add changeset * fix: make sync tests only on workflow dispatch (ethereum-optimism#1123) * fix[dtl]: remove old stringification function (ethereum-optimism#1134) * fix[dtl]: remove old stringification function * chore: add changeset * fix[dtl]: log server errors as ERROR instead of INFO (ethereum-optimism#1133) * fix[dtl]: log server errors as ERROR instead of INFO * chore: add changeset * Contracts: connectL1Contracts & connectL2Contracts (ethereum-optimism#713) * Contracts: connect-contracts * Trying to resolve build problems * connect-contracts build working * Adds artifacts-ovm back to gitignore * Removes incorrect changes * Adds copy-artifacts script * Adds test file (not working yet) * fix: incorrect contract instantiation * Improves tests and removes old deployment versions * Single source of truth for predeploy addresses * Reverts deployments/README.md * Makes connect-contracts more DRY * Adds missing @ethersproject/abstract-signer dependency * Adds argument evaluation * Adds L1Contracts and L2Contracts types * Attempts removing artifacts-ovm again * Adds webpack config (not working yet) * build: add artifacts to dist (ethereum-optimism#776) * Updates lint rule * Adds l2 imports * Fixes dependency tree bug * Removes webpack stuff * Fixing package.json issues and adds .DS_Store to gitignore * Removes test-contracts script * Reverting script change * Adds comments * Adds comment * Renames deployments folders * Fixes linting errors * Generates markdown * build: add deployments directory to Dockerfiles * Removes unneeded contracts, improves error handling and tests * Adds changeset * yarn.lock * Removes console.log * Changes from minor to patch version * Fixes lint errors Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com> Co-authored-by: Liam Horne <liam@lihorne.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> * fix: prevent overflow in abi encoding (ethereum-optimism#1135) * l2geth: prevent overflow in abi encoding to ovm codec tx * chore: add changeset * tests: replica syncing (ethereum-optimism#981) * [wip] add l2_dtl and replica images * passing basic dummy tx test * add erc20 test * add sync test to ci Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> * fix[relayer]: update exported files list in package.json (ethereum-optimism#1138) * fix[relayer]: update exported files * chore: add changeset * fix: import path (ethereum-optimism#1141) * fix: correct import path for altered contract path * chore: add changeset * refactor: improve logging for batch submission timeout scenarios (ethereum-optimism#1120) * Add highest L1 and L2 block number Gauge metrics to DTL (ethereum-optimism#1125) * build: add prom-client to data-transport-layer * refactor: thread metrics more carefully through data-transport-layer; add two new metrics * style: fix some style issues * refactor: make metrics mandatory * refactor: move metrics register code to top of file * style: apply linting * refactor: move promethesus initialization after express * refactor: move promBundle call up, provide registry * build: add changeset * Improve Watcher ability to find transactions (ethereum-optimism#1107) * remove listeners and use loop to find tx receipt * add yarn ready * moved filters inside loop * [added] changeset * Add minimal vscode settings and extensions (ethereum-optimism#1109) * chore: add minimal vscode settings and extensions * chore: Add "files.trimTrailingWhitespace" to vscode native config * chore: replace vscode prettier plugin with eslint plugin * fix[contracts]: remove part of MultiMessageRelayer deployment (ethereum-optimism#1144) * fix[contracts]: remove part of MultiMessageRelayer deployment * chore: add changeset * Define L1 Starting block via OwnershipTransferred rather than AddressSet (ethereum-optimism#1129) * Update service.ts * Create thirty-years-look.md Co-authored-by: smartcontracts <kelvinfichter@gmail.com> * Easy fix for broken watchers (ethereum-optimism#1121) * Easy fix for broken watchers * Ran yarn changeset Co-authored-by: Liam Horne <liam@lihorne.com> * feat: go packages (ethereum-optimism#1111) * go: add utils module * readme: update * Version Packages (ethereum-optimism#1094) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * build: add husky pre-commit hook to lint (ethereum-optimism#1146) * feat[contracts]: add mainnet deploy script (ethereum-optimism#1147) * Add mainnet deploy script * Update mainnet.sh * Address PR review feedback * feat: mainnet contract deployment 0.4.0 (ethereum-optimism#1148) * feat: mainnet contract deployment 0.4.0 * feat: deployments readme * chore: add changeset * contracts: remove dead contract * contracts: remove dead config * tests: fix to not test for old contracts * feat: `rollup gasPrices` RPC endpoint (ethereum-optimism#1136) * feature: l2geth endpoint * chore: add changeset Co-authored-by: Liam Horne <liam@lihorne.com> * Adds l2 standard bridge to contracts markdown file (ethereum-optimism#1151) * Version Packages (ethereum-optimism#1150) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Add more info about our branching strategy to the README (ethereum-optimism#1114) * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Remove references to OVM_L1ETHGateway in deployments and readme (ethereum-optimism#1119) Co-authored-by: Maurelian <maurelian@protonmail.ch> Co-authored-by: smartcontracts <kelvinfichter@gmail.com> Co-authored-by: Elena Gesheva <elena@arenabg.com> Co-authored-by: ben-chain <ben@pseudonym.party> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> Co-authored-by: Karl Floersch <karl@karlfloersch.com> Co-authored-by: Rajiv Patel-O'Connor <rajiv.patel.oconnor@gmail.com> Co-authored-by: rajivpo <rajivpatel-oconnor@Rajivs-MacBook-Pro-2.local> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Kevin Ho <kevinjho1996@gmail.com> Co-authored-by: Ben Wilson <82120899+optimisticben@users.noreply.github.com> Co-authored-by: Liam Horne <liam@lihorne.com> Co-authored-by: Tim Myers <timmyers09@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Annie Ke <annieke8@gmail.com> Co-authored-by: platocrat <37757724+platocrat@users.noreply.github.com> Co-authored-by: Matt Masurka <m.masurka@gmail.com> Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com> Co-authored-by: Alejandro Santander <Palebluedot@gmail.com>
* Fixed wallet integration test (#95)
* Update watcher-utils.ts
* Fixed contracts
* remove GH actions that break due to missing permissions
* naming consistency, added comments to code snippets that will need to be changed when the message-relayer-fast autodeploys
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* tests: replica syncing (#981)
* [wip] add l2_dtl and replica images
* passing basic dummy tx test
* add erc20 test
* add sync test to ci
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
* fix[relayer]: update exported files list in package.json (#1138)
* fix[relayer]: update exported files
* chore: add changeset
* fix: import path (#1141)
* fix: correct import path for altered contract path
* chore: add changeset
* refactor: improve logging for batch submission timeout scenarios (#1120)
* Fixed CrossDomainMessenger name (#96)
* Add highest L1 and L2 block number Gauge metrics to DTL (#1125)
* build: add prom-client to data-transport-layer
* refactor: thread metrics more carefully through data-transport-layer; add two new metrics
* style: fix some style issues
* refactor: make metrics mandatory
* refactor: move metrics register code to top of file
* style: apply linting
* refactor: move promethesus initialization after express
* refactor: move promBundle call up, provide registry
* build: add changeset
* Improve Watcher ability to find transactions (#1107)
* remove listeners and use loop to find tx receipt
* add yarn ready
* moved filters inside loop
* [added] changeset
* Add minimal vscode settings and extensions (#1109)
* chore: add minimal vscode settings and extensions
* chore: Add "files.trimTrailingWhitespace" to vscode native config
* chore: replace vscode prettier plugin with eslint plugin
* fix[contracts]: remove part of MultiMessageRelayer deployment (#1144)
* fix[contracts]: remove part of MultiMessageRelayer deployment
* chore: add changeset
* Define L1 Starting block via OwnershipTransferred rather than AddressSet (#1129)
* Update service.ts
* Create thirty-years-look.md
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* Easy fix for broken watchers (#1121)
* Easy fix for broken watchers
* Ran yarn changeset
Co-authored-by: Liam Horne <liam@lihorne.com>
* feat: go packages (#1111)
* go: add utils module
* readme: update
* Version Packages (#1094)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* build: add husky pre-commit hook to lint (#1146)
* feat[contracts]: add mainnet deploy script (#1147)
* Add mainnet deploy script
* Update mainnet.sh
* Address PR review feedback
* feat: mainnet contract deployment 0.4.0 (#1148)
* feat: mainnet contract deployment 0.4.0
* feat: deployments readme
* chore: add changeset
* contracts: remove dead contract
* contracts: remove dead config
* tests: fix to not test for old contracts
* feat: `rollup gasPrices` RPC endpoint (#1136)
* feature: l2geth endpoint
* chore: add changeset
Co-authored-by: Liam Horne <liam@lihorne.com>
* Adds l2 standard bridge to contracts markdown file (#1151)
* Version Packages (#1150)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Add more info about our branching strategy to the README (#1114)
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Remove references to OVM_L1ETHGateway in deployments and readme (#1119)
* Keep the user logged in after changing chain (#99)
* Keep the user logged in after changing chain
* Update Nft.js
* Detect if user is in the wrong chain
Co-authored-by: cby3149 <cby3149@outlook.com>
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* Merge conflics resolve (#110)
* wip
* gethl2
* wip
* batch submitter
* core utils
* DTL
* message relayer
* contracts
* wip
* Update service.ts
* DTL
* messaage-relayer
* Update yarn.lock
* final 5 files
* [pull] develop from ethereum-optimism:develop (#91)
* chore: reduce hardhat timeout to 20 seconds (#968)
* fix: force LF line endings for scripts to avoid docker problems on Windows (#974)
* fix: use correct line endings for windows
* chore: add changeset
* refactor[contracts]: Turn ExecutionManagerWrapper into a predeployed contract (#808)
* wip: Started working on L2 contract testing revamp
* test: clean tests for ProxyEOA
* style: clean imports for ProxyEOA tests
* test: port tests for ECDSAContractAccount
* fix tests and add wrapper to dump
* fix: add em wrapper to l2 deploy
* ffix: add comments to wrapper contract
* fix: add more comments
* fix: add smock comment for unbind
* Update packages/smock/src/smockit/binding.ts
* maintenance[contracts]: use dashes in chain container names (#819)
* maintenance: use dashes in chain container names
* chore: add changeset
* feat[contracts]: temporarily disable EOA upgrades (#857)
* feat[contracts]: disable eoa upgrades temporarily
* chore: add changeset
* Update OVM_ProxyEOA.sol
* fix: turn upgrade into a noop
* lint: fix
* feat[contracts]: Update Lib_AddressManager.AddressSet event to speed up data transport layer (#820)
* feat: update and improve AddressSet event
* chore: add changeset
* Update Lib_AddressManager.sol
* Reduce gas costs of deposits (#667)
* Remove messageNonce from BaseCrossDomainMessenger and use CTC queue lenght instead
Remove Abs_BaseCrossDomainMessenger and restore dedicated nonce generation in OVM_L2CrossDomainMessenger
Fix typo
* Remove sentMessages mapping from L1CrossDomainMessenger storage
and use the nonce to check for existence of replayed transaction
* Refactor out common library function for getting cross domain calldata
* Post rebase fixes
* Use the queueIndex to check the transaction was enqueued
* Fix tests for L1CrossDomainMessenger.replayMessage
Also make that test work with an actual CanonicalTransactionChain implementation rather than a smock
* Lint fixes
* Optimise the resolve calls into the AddressManager lib
* Rename the nonce parameter to be clear
* Update test name
Co-authored-by: ben-chain <ben@pseudonym.party>
* Rename getXDomainCalldata to encodeXDomainCalldata to match the new Lib_CrossDomainUtils
Co-authored-by: ben-chain <ben@pseudonym.party>
* optimism: bump gaslimit to 10 million #870 (#871)
* optimism: bump gaslimit to 10million
* chore: add changeset
* optimism: bump max gaslimit to 10 mil
* chore: add changeset
* chore: remove unnecessary changeset
* chore: remove unnecessary changeset
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* fix: use correct contract name in tests (#921)
* fix: disable upgradability from ECDSA Account (#885)
* l2geth: remove `SignatureHashType` (#752)
* l2geth: remove tx type
* l2geth: no longer parse type in rollup client
* chore: add changeset
* chore: remove extra sighash params
* fix: do not check txtype in integration tests
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* feat[contracts]: introduce OVM_GasPriceOracle (#912)
* feat[contracts]: congestion price oracle
* chore: add changeset
* contracts: gas price oracle (#917)
* contracts: gas price oracle
* tests: update
* fees: fix tests
* contracts: simplify gas price oracle
* lint: fix
* test: execution price is at the 1st storage slot
* chore: rename predeploy to GasPriceOracle
* chore: rename gas price oracle test name
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* fix: configure max gas limit to 11m (#928)
Uniswap V3 contracts require that, otherwise they throw call exceptions at deployment
* Consolidate Predeploy Addresses (#931)
* added library for predeploy addresses
* refactor tests and other packages to use exported predeploys
* revert library usage in OVM_ECDSAContractAccount
* lint
* added newline
* fixed address typos
Co-authored-by: rajivpo <rajivpatel-oconnor@Rajivs-MacBook-Pro-2.local>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* chore: remove yarn-error.log and gitignore it (#956)
* feat[contracts]: Replace Lib_RingBuffer with a much simpler Lib_Buffer (#821)
* feat[contracts]: replace Lib_RingBuffer with a simpler Lib_Buffer
* chore: changeset
* test: add tests for Lib_Buffer
* lint: fix
* test: add extra coverage for Lib_Buffer
* Update packages/contracts/contracts/optimistic-ethereum/libraries/utils/Lib_Buffer.sol
Co-authored-by: ben-chain <ben@pseudonym.party>
* add some extra comments
Co-authored-by: ben-chain <ben@pseudonym.party>
* fix(contracts): import predeploys (#982)
* fix(contracts): import predeploys
* fix: lint
* feat: add hardhat deploy instructions to readme (#965)
* feat: add deployment instructions to readme
* Add changeset
* fix style
* Update README.md
* feat: fees v2 (#976)
* l2 geth: new fee logic
* l2 geth: migrate to fees package
* core-utils: new fee scheme
* chore: add changeset
* l2geth: delete dead code
* integration-tests: fix typo
* integration-tests: fixes
* fees: use fee scalar
* lint: fix
* rollup: correct gas payment comparison
* fix(integration-tests): do not hardcode gas price
* core-utils: update with new scheme
* l2geth: refactor rollup oracle
* l2geth: clean up DoEstimateGas
* l2geth: implement latest scheme
* tests: fix up
* lint: fix
* l2geth: better sycn service test
* optimism: rename to TxGasLimit
* fee: fix docstring
* tests: fix
* variables: rename
* l2geth: prevent users from sending txs with too high of a fee
* integration-tests: fix import
* integration-tests: fix type
* integration-tests: fix gas limits
* lint: fix
* l2geth: log error
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* Add static analysis action (#848)
* Add static analysis github action
setup python and install slither
* Add nvmrc file for setting node to v14.17
* Update slither command run to link missing contract packages from monorepo root
* Add steps for installing dependencies
* Add yarn build step to github action
* Enable colour in github action for static analysis
* Disable certain detectors
* Ensure slither does not fail build
* Add instructions on running static analysis to monorepo readme
* build(deps): bump ws from 7.4.4 to 7.4.6 in /ops/docker/hardhat (#987)
Bumps [ws](https://github.com/websockets/ws) from 7.4.4 to 7.4.6.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.4.4...7.4.6)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix[l2geth]: fix accidental merge conflict (#994)
* feat[message-relayer]: relay tx generator (#952)
* feat[message-relayer]: relay tx generator
* whoops, I burned our infura key
* fix minor bug
* add comments
* add more comments and clean stuff up
* add empty test descriptions
* add tests
* move smock to dev deps
* chore: add changeset
* minor cleanup to merkle tree proof function
* use bignumber math to avoid nested await
* use a better interface
* minor fixes and simplifications
* backwards compatible dtl syncing (#986)
* kovan: fix attempt
* kovan: db fix
* kovan: types are strings from db
* l2geth: parse things as strings
* chore: add changeset
* dtl: also stringify the range query
* geth: dereference
* geth: assign err
* dtl: handle null
* dtl: fix unit tests
* fix[smock]: fix broken call assertions for overloaded functions (#996)
* fix[smock]: fix broken call assertions for overloaded functions
* chore: add changeset
* minor correction and add a test
* add a test for non-overloaded functions
* fix[message-relayer]: fix failing test because of merge with develop (#1000)
* fix[message-relayer]: remove spreadsheet mode (#998)
* fix[message-relayer]: remove spreadsheet mode
* chore: add changeset
* Lower local rollup timestamp refresh (#985)
* update rollup timestamp refresh
* increase refresh time to 5s
* feat: fees v3 (#999)
* core-utils: fee impl v3
* l2geth: fees v3 impl
* integration-tests: update for fees v3
* chore: add changeset
* fix: typo
* integration-tests: fix and generalize
* fees: update fee scalar
* l2geth: check gas in the mempool behind usingovm
* tests: fix up
* l2geth: remove dead var
* truffle: fix config
* fix: remove dead coders (#1001)
* chore: delete dead coders
* chore: add changeset
* dtl: remove dead imports
* core-utils: delete dead tests
* batch-submitter: remove txtype
* chore: add changeset
* docs[message-relayer]: add a README and improve the interface for generating proofs (#1002)
* docs[message-relayer]: add basic docs and clean up an interface
* chore: add changeset
* dtl: log error stack for failed http request (#995)
* dtl: log error stack for failed http request
* chore: add changeset
* Add rpc-proxy service for whitelisting JSON RPC methods to the sequencer. (#945)
* Add healthcheck endpoint for rpc-proxy
Added ethereum-nginx-proxy source
updated README and docker image build
* Check ETH_CALLS_ALLOWED is set, clean up comments, remove old Dockerfile
* Pass additional information across domains via token gateways (#824)
* feat(contracts): add from and data args to L1ERC20Gateway
fix(integration): add gasLimit to fundUser
refactor(contracts): add data to gateway events
add changeset
fix(integration): provide data in outboundTransfer
refactor(contracts): reset Abs_L2TokenGateway to Abs_L2DepositedToken
refactor(contracts): fix mismatched names
* feat[contracts]: add custom gas arg to gateway
fix(contracts): take max of user vs. default gas
* fix(integrations): update ovm-eth function call
* fix(integration): remove unecessary explicit gasLimit
* test(contracts): 32kb transfer, 9MM gas
* fix(contracts): fixup comment, bytes arg last
* fix(integration): args order in integrations
* fix(contracts): remove unused L2 gas arg
* fix(contracts): limit data that can be passed to L2
* fix(integration): better tests for data length
* test: check for error on too large data
* Experimental: specify gaslimit in before hook
* fix(integration): add l2 gas argument
* fix: increase gas on fundUser
* fix(contracts): remove duplicate max size limit
* fix(integration): fine tune gas amounts
* lint
* fix: large data test
* fix(integration): set gas closer to real cost
* fix(contracts): remove unused bridge variables
These variables were the default gas amounts for cross domain messages
* fix(contracts): Reorder args
Place dynamic length args last
* fix(integration): update estimateGas values
* fix(integration): reset eth withdraw estimate to 21000
* fix(integration): update expected gas amount
* fix(integration): reduce gas amount for ETH withdraw
* More consistent style for Constant values (#991)
* chore(contracts): make container addresses be constants
chore(contracts): consistent style for constant vars
* chore(contracts): add internal on predeploy constants
* feat: deployment config for fee oracle contract (#936)
* feat[contracts]: add GasPriceOracle w/o predeploy
Based on #912
* feat[contracts]: congestion price oracle
* chore: add changeset
* contracts: gas price oracle (#917)
* contracts: gas price oracle
* tests: update
* fees: fix tests
* contracts: simplify gas price oracle
* lint: fix
* test: execution price is at the 1st storage slot
* chore: rename predeploy to GasPriceOracle
* chore: rename gas price oracle test name
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* Add an L2 deploy script for gas oracle contract
* Add a kovan deployment artifact
* Add deployment to readme
* Add extra validation & initial execution price
* Update README.md
* Fix execution price logic
* Perform new deployment with final contract
* contracts: better require in ovm gas price oracle
* Deploy L2GasPriceOracle
* Update contract to use new fee logic & rename to gas
* Deploy updated contract
* Fix lint
* gas price oracle: do not restrict gas price
* gas price oracle: new deployment
* tests: delete dead test
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* ops: expose debug namespace (#1007)
* develop merge fixes
* refactor[l2geth]: queue origin type (#975)
* refactor: queueOrigin type
* Convert queueOrigin to uint8 in encode
* Add changeset
* Regenerate json marshall
* style: combine lines
* Add Stringer for QueueOrigin
* Turn QueueOrigin into uint8
* l2geth: gen tx meta fix
* l2geth: gen tx meta fix
* lint
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
* fix(sync-service): prevent underflows (#1015)
* fix(sync-service): prevent underflows
* chore: add changeset
* chore: remove dead confirmation depth
* chore: remove eth1conf depth from rollup config
* test: remove duplicate value in array (#1014)
* ci: tag docker image for canary with abbreviated GITHUB_SHA (#1006)
* ci: tag docker image for canary with abbreviated GITHUB_SHA
* ci: update from 6 bytes to 8 bytes of abbreviation
* refactor: improve logging for transactions being submitted to chain with gasPrice (#1016)
* refactor: improve logging for transactions being submitted to chain with gasPrice
* lint: apply lint autofixes
* dtl: remove stringify from db logic + more overflow protection (#1010)
* dtl: remove stringify from db logic
* l2geth: overflow protection
* dtl: overflow protection
* chore: add changeset
* ci: upload logs for failed integration tests (#1020)
* fix(dtl): improve slow blocking JSON parsing that occurs during l2 sync (#1019)
The use of eth_getBlockRange returns a large response which is very
slow to parse in ethersjs, and can block the event loop for upwards
of multiple seconds.
When this happens, incoming http requests will likely timeout and fail.
Instead, we will parse the incoming http stream directly with the bfj
package, which yields the event loop periodically so that we don't
fail to serve requests.
* fix: lint errors in dtl (#1025)
* fix[dtl]: fix dtl bug breaking verifiers (#1011)
* fix[dtl]: fix dtl bug breaking verifiers
* tweaks so tests pass
* chore: add changeset
* fix: deterministic blockhashes (#1032)
* config: set etherbase
* l2geth: add deterministic clique key
* l2geth: default value
* chore: add changeset
* test: add sync test for deterministic blockhash
Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
* Version Packages (#978)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* ci: add sync test's own workflow (#1031)
* fix(dtl): incorrect parsing of eth_getBlockRange result (#1037)
* Version Packages (#1045)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix: no gas refund (#1043)
* l2geth: remove the gas refund
* chore: add changeset
* refactor[contracts]: remove one-off GasPriceOracle deployment file (#1046)
* refactor[contracts]: remove one-off gpo deployment
* chore: add changeset
* feat[contracts]: introduce new L1ChugSplashProxy contract (#1009)
* feat[contracts]: add L1ChugSplashProxy
* improve comments slightly
* start adding tests
* add more tests
* make the system pausable
* added another test
* add some extra comments
* Update packages/contracts/test/contracts/chugsplash/L1ChugSplashProxy.spec.ts
Co-authored-by: Maurelian <maurelian@protonmail.ch>
* Update packages/contracts/test/contracts/chugsplash/L1ChugSplashProxy.spec.ts
Co-authored-by: Maurelian <maurelian@protonmail.ch>
* chore: add changeset
* address review feedback
Co-authored-by: Maurelian <maurelian@protonmail.ch>
* feat[contracts]: add sequencer fee wallet (#1029)
* wip: first draft of the fee wallet
* add fee wallet to dump
* rename to sequencer vault
* add L1 fee wallet to geth config
* add unit tests
* fix geth linting error
* add a basic integration test
* fix broken integration test
* add test for correct storage slot
* add integration test for fee withdrawal
* fix typo in integration tests
* fix a bug bin integration tests
* Update OVM_SequencerFeeVault.sol
* fix bug in contract tests
* chore: add changeset
* fix bug in contract tests
* build(deps): bump glob-parent from 5.1.1 to 5.1.2 (#1036)
Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/gulpjs/glob-parent/releases)
- [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2)
---
updated-dependencies:
- dependency-name: glob-parent
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: Liam Horne <liam@lihorne.com>
* fix: predeploy gasprice oracle (#1039)
* l2geth: delete extra config options
* l2geth: stop using extra config options
* l2geth: more stop using extra config options
* chore: add changeset
* l2geth: add new config for gpo owner
* chore: add changeset
* l2geth: fix tests
* tests: fix build
* l2geth: optimize loops (#1027)
* l2geth: optimize loops
* l2geth: stop ticker when done
* l2geth: don't wait for first tick
* chore: add changeset
* Enable custom tagging of release docker image (#1048)
* ci: enable custom tagging of release docker image
* ci: refactor to add prerelease prefix for secuirty
* doc: typo
* ci: fix indentation issue of canary workflow
* ci: fix typo with GITHUB_SHA
* fix: typo in USE_HARDHAT config (#1023)
* fix: abi encoded tx (#1049)
* contracts: don't double rlp decode
* chore: add changeset
* lint: fix
* deps: update
* linting: cleanup
* feat: contracts: use selector
* fix: contracts: use typescript
* contracts: use interface
* l2geth: bump to go 1.15 (#1058)
* l2geth: bump to go 1.15
* chore: add changeset
* Change monotonicity band-aid code to log warnings not errors (#1060)
* refactor: change monotonicity band-aid code to log warnings not errors
* build: add changeset
* feat(contracts, l2geth): native ETH value support for ovmCALL (#1038)
* feat(contracts): add ovmCALL-types with native value
* add ovmCALLVALUE context
* add ovmBALANCE
* test success and revert cases
* test empty contract case
* chore: lint
* test(integration-tests): ovmCALL-types with value (compiler and wrapper)
* fix ovmDELEGATECALL type, update tests
* add ovmSELFBALANCE
* fix ovmDELEGATECALL jumping to CALL
* chore: lint
* fix(contracts): account for intrinsic gas of OVM_ETH sends
* fix(contracts): merge conflict bug
* fix(contracts): update gas benchmark
* feat(contracts, integration-tests): use new value-compatible compiler
* feat(contracts,l2geth): support value calls in OVM_ECDSAContractAccount
* fix(contracts): ovmDELEGATECALL does not change message context
* feat(contracts): sending value between EOAs
* test(integration-tests): ovmDELEGATECALL preserves ovmCALLVALUE
* test(integration-tests): assert ovmSELFBALANCEs correct
* test(integration-tests): intrinsic gas for eth value calls
* test(integration-tests): update gas values
* chore(contracts): lint
* feat(contracts, l2geth): eth_calls with nonzero value
* chore: minor fixups and comments based on PR feedback
* test(integration-tests): add requested tests from PR reviews
* test(integration-tests): ovmSELFBALANCE is preserved in ovmDELEGATECALLs
* fix(contracts): fix bug where ovmDELEGATECALL could fail if balance was lower than the ovmCALLVALUE
* chore: add changeset
* fix(contracts): update intrinsic gas for worst-case value sends
* chore: address final PR nits/improvements
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
* Add erc1271 support to contract account (#1052)
* add ERC1271 support, failing unit tests
* add integration test for isValidSignature
* remove .only
* lint
* add changeset
* clean up 1271 tests and lint
* switch back to using waffle wallet
* lint
* fix import
* feat[contracts]: slightly better account funding for hardhat accounts (rebased) (#1065)
* feat[contracts]: better account funding for hardhat accounts
* add a sleep to avoid any potential problems
* chore: add changeset
* fix: bug with gas estimation in funding step
* fix: limit to 20 accounts max
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
* Ensure Sentry is correctly set up for DTL and MR (#1054)
* refactor: add logger and metrics to options for BaseService
* refactor: thread sentryOptions through from message-relayer into BaseService
* refactor: ensure DTL Logger is using Sentry for errors
* style: lint base-service.ts
* refactor: init Sentry on batch-submitter too
* refactor: init Sentry on message-relayer too
* refactor: pass in basic logger to MessageRelayerService
* build: provide changeset
* fix: correct usage of use-sentry boolean config
* refactor: appropriately type loggingOptions
* build: add @sentry/node
* build: add @sentry/node to message-relayer and fix linting issue
* Add more logging information to monotonicity violation logs (#1066)
* refactor: log idx of monotonicity violation from batch
* build: add changeset
* temporarily disable hardhat example tests (#1071)
* fix: monotonicity auto healer (#1070)
* fix: monotonicity auto healer
* add: changeset
* Version Packages (#1053)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Standard token bridge (#988)
* Remove abstract token gateway and deposited token implementations
* Further simplification of bridge contracts
* Standart token bridge and L2 token implementation
* Fix spacing
* Implement case when a bad deposit happens to a nonexistent L1<>L2 token pair
* Use SafeMath in common token bridge accounting
* test(contracts): fix finalizeWithdrawal test
* fix(contracts): use SafeERC20 on token deposits
* Rename OVM_L1ERC20Gateway to OVM_L1ERC20Bridge contract
* Rename iOVM_L1ERC20Gateway to iOVM_L1ERC20Bridge contract
* Cleanup gateway to bridge rename
* Better name for the mapping holding l1->l2 deposit amounts
* Use OZ SafeMath
* Rename local variables in OVM_L2DepositedERC20 from gateway to bridge
* Merge ETH and ERC20 bridge contracts
* Rename OVM_L1ERC20Bridge to OVM_L1StandardBridge and fix tests from merging the ETH and ERC20 bridges
* Better name for iAbs_BaseCrossDomainMessenger -> iOVM_CrossDomainMessenger
* Correct the bounce back of deposit sender and recipient properties
* Remove obsoleted event from OVM_L2DepositedERC20
* chore(contracts): change references from ETHGateway to Bridge
* Fix a linting error
* fix(contracts): add bridge to deployer
* Split off ERC20Bridge interface for the purposes
of being reused in custom ERC20 bridges
* Split off interface natspec definitions
* Draft version of OVM_L2DepositedERC20 splitted into a standard L2 erc20: L2StandardERC20 and
a common L2 bridge: OVM_L2StandardBridge
* style(contracts): define L1_ETH_ADDRESS as constant
* test(integration): update interface to use depositETH
* test(contracts): fix OVM_L1StandardBridge tests
* test(contracts): fix L2 Standard Bridge tests
* test(contracts): lint and remove an obsolete test case
* Fix modifier check to comply with the L2 bridge distinction from L2 token
* Simplify address <> interface casting in bridges
* Ensure natspec comments are correct
also add l1 and l2 token params to WithdrawalInitiated event for consistency
* Fix issues in L1 and L2 bridges to ensure
cross domain messages are sent only between the two bridges
also adjusted withdrawals to send to either finalizeETHWithdrawal or finalizeERC20Withdrawal
depending on which asset is being withdrawn
* Remove AddressManager from the L1 standard bridge
* REVERT ME: instruments cross domain enabled
* fix(contracts): remove Address Manager from L1 Bridge
* feat(contracts): make L2 Standard Bridge a predeploy
* WIP: update deployments for standard bridges
* WIP: update deployments for standard bridges
* l2geth: TEMP log contract calls
* chore(l2geth): replace eth gateway with standard bridge
* fix(contracts): make contract-deployment/config work
* WIP fix(integration): update integration tests for bridge
* Remove ovmEth from L1 Standard bridge as obsoleted
* Separate ERC20 standard implementation from L2 bridge
* Formatting fixes
* chore(l2geth): replace eth gateway with standard bridge
* Revert "REVERT ME: instruments cross domain enabled"
This reverts commit d5bb8f8f67974d0a3e65fc000f08858328a4bbbc.
* fix: lint ts
* Implement EIP-165 in the Standard L2 ERC20 token
Also switch that to be based off the OpenZeppelin default implementation plus mint and burn
Additionally remove the obsoleted iOVM_ERC20
* fix(contracts): add deployment check on bridge proxy
fix(contracts): whitespace
fix(contracts): init bridge implementation with non-zero address
* Remove dependency on Ownable contract for the StandardERC20 token on L2
* fix(contracts): update deployment scripts
* fix: lint
* remove debugging code
* fix: correct rpc get balance slot
* restore l2 cross domain messenger
* fix: lint
* Add a test for a non compliant token deposit
* Only allow EOAs to deposit ETH and ERC20
* Add comments and tests for ERC165 implementation
* Decide against using explicit ETH MOCK address as we're not using it for checks
* Fix linting issues
* Add onlyEOAContract restriction to standard bridge withdrawals
* Update codehashes in L2 Standard bridge
* fix(ops): remove unintentionally added file
* feat(contracts): add expectApproxGasCost function
* fix(integration): proper arrayify input on fundUser
* fix(integration): proper gas value checks
* Revert "Add onlyEOAContract restriction to standard bridge withdrawals"
This reverts commit 2713c06ceb2609e4f13718e1034a4d76210d9758.
* fix(contracts): removed unused expectApproxGasCost for now
* fix(contracts): update OVM_SequencerFeeVault for bridge changes
* lint
* Update deployment for L1 Bridge w/ ChugSplash
* Revert "l2geth: TEMP log contract calls"
This reverts commit 21d42259278449f221bf34605162229b3d9d4fa9.
* Apply suggestions from code review
* Apply suggestions from code review
* fix(contracts): deploy with chugsplash proxy
* fix(contracts): add working bridge and chugsplash proxy deployment
* fix(contracts,integration): 500k gas for depositETH
* comment(contracts): describe failed deposit handling on l2
* Apply suggestions from code review
Co-authored-by: ben-chain <ben@pseudonym.party>
* docs: add changeset
* fix(integration): set working l2 gas amount on funduser
* test(integration): add receive() test
* fix(contracts): reset receive to 1.2MM l2 gas
* test(examples): skip l1-l2 example test for now
* fix(contracts): drop hardcoded gas to 500k in receive()
* fix(contracts): use abi.encodeWithSignature
* fix(contracts): resolve merge conflicts
* feat(integration): add expectApprox for flexible gas testing
* fix(integration): fix failing gas tests
* fix: incorrect l2 gas for deposit
* Update utils.ts
* fix(workflow): disable l1-l2 example until npm imports are fixed
* chore: final round of PR review nits and tests
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: ben-chain <ben@pseudonym.party>
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
* fix: comment out codeowners (#1073)
* fix: use predeploy constant lib for em wrapper (#1075)
* fix: use predeploy constant lib for em wrapper
* chore: add changeset
* fix[l2geth]: off-by-one sometimes breaking replica sync (#1082)
* fix[l2geth]: off-by-one sometimes breaking replica sync
* chore: add changeset
* fix(l2geth): Log 'end of OVM execution' correctly (#1080)
* refactor[contracts]: move account contracts to predeploy folder (#1085)
* refactor[contracts]: move account contracts to predeploy folder
* chore: add changeset
* maintenance[contracts]: rename precompiles test folder to predeploys (#1086)
* fix[bs]: disambiguate generic submission errors (#1051)
* fix[bs]: disambiguate generic submission errors
* add cases for errors
* separate out errors from transaction reverts with reasons
* remove extraneous errors
* WETH deposit and withdraw on OVM_ETH (#1083)
* feat(contracts): add no-op WETH9 functionality to OVM_ETH
* working WETH deposit and withdraw + tests
* add changeset
* address PR feedback
* update WETH9 contract implementation
* add fallback to WETH9
* add fallback and revert withdraw test
* update nit comment
Co-authored-by: ben <ben@pseudonym.party>
* Also move the accounts interface to iOVM/predeploys (#1087)
* refactor[contracts]: move account interface to predeploy folder
* chore: add changeset
* Version Packages (#1089)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix: use -z flag for var unset in canary
* Use Eslint instead of Tslint (#1005)
* removed tslint
* forgot to commit files
* made .eslintrc.js consistent for all subdirs and other cleanup
* [removed] includes and files keys from tsconfig.json
* removed file level linting exceptions and added details to line level
* added changeset
* fixed newly introduced linting errors from rebase
* enable json import for batch submitter
* removed ecdsa-coder
* maybe a tsconfig issue?
* Update deploy.ts
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: platocrat <37757724+platocrat@users.noreply.github.com>
* metrics[batch-submitter]: add new batch submitter metrics (#1074)
* metrics[batch-submitter]: add new batch submitter metrics
* chore: changeset
* account for failed submissions
* Fix canary publishing (#1093)
* ci: fix custom docker tag
* ci: use new env file
* ci: use outputs from previous job
* ci: fix headers of jobs
* ci: inherit canary tag from builder
* feat[ci]: upload logs for sync tests if failure (#1098)
* deploy: goerli 0.4.0 (#1099)
* deployments: goerli 0.4.0 rc
* readme: update
* chore: add changeset
* fix[dtl]: defend against RPC provider missing events (#1084)
* fix[dtl]: defend against RPC provider missing events
* chore: add changeset
* respond to review comments
* better error handling for missing handlers
* deploy: kovan v.4.0 rc (#1101)
* deploy: kovan v0.4.0 rc
* chore: add changeset
* readme: update
* maintenance[monorepo]: first pass update to README (#1106)
* maintenance[monorepo]: first pass update to README
Doing some relatively minor updates to the README just to clean things up a bit.
* replying to review comments
* Move the metric prefix string to a label (#1047)
Added changeset and fixes
Changeset to patch
* fix[smock]: add support for hardhat 2.4.0 (#1112)
* fix[smock]: add support for hardhat 2.4.0
* chore: add changeset
* lint: fix
* build(deps): bump hosted-git-info from 2.8.8 to 2.8.9 (#1064)
Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.8 to 2.8.9.
- [Release notes](https://github.com/npm/hosted-git-info/releases)
- [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md)
- [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.8...v2.8.9)
---
updated-dependencies:
- dependency-name: hosted-git-info
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* Misc. small improvements to README (#1115)
* Update README.md
* Update README.md
* fix[dtl]: use the same L2 chain ID everywhere (#1122)
* fix[dtl]: use the same L2 chain ID everywhere
* chore: add changeset
* fix: make sync tests only on workflow dispatch (#1123)
* fix[dtl]: remove old stringification function (#1134)
* fix[dtl]: remove old stringification function
* chore: add changeset
* fix[dtl]: log server errors as ERROR instead of INFO (#1133)
* fix[dtl]: log server errors as ERROR instead of INFO
* chore: add changeset
* Contracts: connectL1Contracts & connectL2Contracts (#713)
* Contracts: connect-contracts
* Trying to resolve build problems
* connect-contracts build working
* Adds artifacts-ovm back to gitignore
* Removes incorrect changes
* Adds copy-artifacts script
* Adds test file (not working yet)
* fix: incorrect contract instantiation
* Improves tests and removes old deployment versions
* Single source of truth for predeploy addresses
* Reverts deployments/README.md
* Makes connect-contracts more DRY
* Adds missing @ethersproject/abstract-signer dependency
* Adds argument evaluation
* Adds L1Contracts and L2Contracts types
* Attempts removing artifacts-ovm again
* Adds webpack config (not working yet)
* build: add artifacts to dist (#776)
* Updates lint rule
* Adds l2 imports
* Fixes dependency tree bug
* Removes webpack stuff
* Fixing package.json issues and adds .DS_Store to gitignore
* Removes test-contracts script
* Reverting script change
* Adds comments
* Adds comment
* Renames deployments folders
* Fixes linting errors
* Generates markdown
* build: add deployments directory to Dockerfiles
* Removes unneeded contracts, improves error handling and tests
* Adds changeset
* yarn.lock
* Removes console.log
* Changes from minor to patch version
* Fixes lint errors
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* fix: prevent overflow in abi encoding (#1135)
* l2geth: prevent overflow in abi encoding to ovm codec tx
* chore: add changeset
* tests: replica syncing (#981)
* [wip] add l2_dtl and replica images
* passing basic dummy tx test
* add erc20 test
* add sync test to ci
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
* fix[relayer]: update exported files list in package.json (#1138)
* fix[relayer]: update exported files
* chore: add changeset
* fix: import path (#1141)
* fix: correct import path for altered contract path
* chore: add changeset
* refactor: improve logging for batch submission timeout scenarios (#1120)
* Add highest L1 and L2 block number Gauge metrics to DTL (#1125)
* build: add prom-client to data-transport-layer
* refactor: thread metrics more carefully through data-transport-layer; add two new metrics
* style: fix some style issues
* refactor: make metrics mandatory
* refactor: move metrics register code to top of file
* style: apply linting
* refactor: move promethesus initialization after express
* refactor: move promBundle call up, provide registry
* build: add changeset
* Improve Watcher ability to find transactions (#1107)
* remove listeners and use loop to find tx receipt
* add yarn ready
* moved filters inside loop
* [added] changeset
* Add minimal vscode settings and extensions (#1109)
* chore: add minimal vscode settings and extensions
* chore: Add "files.trimTrailingWhitespace" to vscode native config
* chore: replace vscode prettier plugin with eslint plugin
* fix[contracts]: remove part of MultiMessageRelayer deployment (#1144)
* fix[contracts]: remove part of MultiMessageRelayer deployment
* chore: add changeset
* Define L1 Starting block via OwnershipTransferred rather than AddressSet (#1129)
* Update service.ts
* Create thirty-years-look.md
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* Easy fix for broken watchers (#1121)
* Easy fix for broken watchers
* Ran yarn changeset
Co-authored-by: Liam Horne <liam@lihorne.com>
* feat: go packages (#1111)
* go: add utils module
* readme: update
* Version Packages (#1094)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* build: add husky pre-commit hook to lint (#1146)
* feat[contracts]: add mainnet deploy script (#1147)
* Add mainnet deploy script
* Update mainnet.sh
* Address PR review feedback
* feat: mainnet contract deployment 0.4.0 (#1148)
* feat: mainnet contract deployment 0.4.0
* feat: deployments readme
* chore: add changeset
* contracts: remove dead contract
* contracts: remove dead config
* tests: fix to not test for old contracts
* feat: `rollup gasPrices` RPC endpoint (#1136)
* feature: l2geth endpoint
* chore: add changeset
Co-authored-by: Liam Horne <liam@lihorne.com>
* Adds l2 standard bridge to contracts markdown file (#1151)
* Version Packages (#1150)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Add more info about our branching strategy to the README (#1114)
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Remove references to OVM_L1ETHGateway in deployments and readme (#1119)
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: Elena Gesheva <elena@arenabg.com>
Co-authored-by: ben-chain <ben@pseudonym.party>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
Co-authored-by: Karl Floersch <karl@karlfloersch.com>
Co-authored-by: Rajiv Patel-O'Connor <rajiv.patel.oconnor@gmail.com>
Co-authored-by: rajivpo <rajivpatel-oconnor@Rajivs-MacBook-Pro-2.local>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
Co-authored-by: Ben Wilson <82120899+optimisticben@users.noreply.github.com>
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Tim Myers <timmyers09@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Annie Ke <annieke8@gmail.com>
Co-authored-by: platocrat <37757724+platocrat@users.noreply.github.com>
Co-authored-by: Matt Masurka <m.masurka@gmail.com>
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
Co-authored-by: Alejandro Santander <Palebluedot@gmail.com>
* Re-apply key changes on top of optimism most current develop
* Add docker-compose-replica.yml (#109)
* Create docker-compose-replica.yml
* Add replica service
* Update docker-compose-omgx-replica.yml
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* fix linter; patch gethl2
* configure the deployer correctly
* fix proposer / batch submitter
* update chainIDs
* update rpc test
* Create README_OMGX.md
* upstream - needs more work
* Adds delay to watcher (#1159)
* Adds delay to watcher
* Simplifies delay
* Adds changeset
* Fix wallet test
* Fix deployment test
* Add Python
* Update Dockerfile.omgx_monorepo
* Remove package-lock
* fix: bind dtl functions for missing event codepath (#1161)
* dtl: bind this in L1 missing element error handlers
* dtl: add additional logline
* chore: add changeset
* dtl: add more metrics
* dtl: use counter instead of gauge
Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
* fix: remove 'editor.formatOnSave' from global settings' (#1163)
* merge conflicts
* Update pre-commit
* Version Packages (#1167)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* minor
* Update pre-commit
* Fix wallet test (#119)
* Fix wallet test
* Fix deployment test
* Add Python
* Update Dockerfile.omgx_monorepo
* Remove package-lock
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* Reapply standard changes on top of current develop
* Update package.json
* doc: add notes for releasing new versions with changesets (#1166)
* Bind correct object to method handler in DTL (#1168)
* fix: bind correct object to method handler
* build: add changeset
* Version Packages (#1169)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Fix web wallet
* Fix integration test (#124)
* Fix integration test (#125)
* Fix integration test
* Fix integration test
* Fix wallet_react
* Fix lint test
* Remove package-lock
* Update integration.yml
* Fix wallet deployer
* Collect docker log
* Fix l1-l2-deposit-withdrawal test
* Fix sync test
* Add chainID to deployer config
* make sync tests dispatch only
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* Add short contribution section to primary README (#1157)
* Add short contribution section to primary README
* Update README.md
* fix: prevent batch submitter from submitting batches if low on ETH
* build: add changeset
* Eslint ignore the hardhat folder
* Update README.md
* Beginning to add working examples
* hardhart and waffle example tests
* document/check waffle
* test l1-l2 example
* add patch-package
* Update package.json
* build: ensure lint only staged files on commit
* refactor: do not run --fix on lint-staged
* refactor: *.{ts,js} for eslint regex
* l2geth: rollup client explicitly checks for >= 400 errors
* l2geth: sync service retries connection to remote server
* l2geth: test errors returning from remote
* chore: add changeset
* syncservice: nit
* feat[message-relayer]: add easy relay tool
* chore: add changeset
* upkeep[monorepo]: add changeset info to README
* merge conflict squash
* Daily sync up (#137)
* build: ensure lint only staged files on commit
* refactor: do not run --fix on lint-staged
* refactor: *.{ts,js} for eslint regex
* l2geth: rollup client explicitly checks for >= 400 errors
* l2geth: sync service retries connection to remote server
* l2geth: test errors returning from remote
* chore: add changeset
* syncservice: nit
* feat[message-relayer]: add easy relay tool
* chore: add changeset
* upkeep[monorepo]: add changeset info to README
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Kelvin Fichter <kelvin@optimism.io>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* build: set up eslint prettier correctly
* style: run yarn lint --fix at root
* build: add necessary packages to workspace root
* build: remove --format stylish
* build: set semvery ranges to match across packages
* build: set up prettierrc.js for monorepo
* refactor: rename Range to BlockRange
* build: set up correct working directories
* build: set up lint:fix to use eslint not prettier
* style: run lint:fix on all code
* build: remove prettier extension recommendation
* style: update configuration to include babel-eslint for .js linting
* build: set concurrency to 1 to prevent git add errors on lerna lint
* github actions: bump geth CI golang version
* fix(contracts): prevent L2->L1 calls to system contracts
* Update message relayer fast contracts (#139)
* prepare for wallet reorg
* Create yarn.lock
* fix hardhat bug
* merge conflict resolve
* daily sync up (#141)
* build: set up eslint prettier correctly
* style: run yarn lint --fix at root
* build: add necessary packages to workspace root
* build: remove --format stylish
* build: set semvery ranges to match across packages
* build: set up prettierrc.js for monorepo
* refactor: rename Range to BlockRange
* build: set up correct working directories
* build: set up lint:fix to use eslint not prettier
* style: run lint:fix on all code
* build: remove prettier extension recommendation
* style: update configuration to include babel-eslint for .js linting
* build: set concurrency to 1 to prevent git add errors on lerna lint
* fix(contracts): prevent L2->L1 calls to system contracts
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: ben <ben@pseudonym.party>
* Add Factory contract for creating standard ERC20 tokens
compliant with the standard bridge
* Disallow 0 address for l1 token when creating l2 standard token
* Fix linting issue
* Add deployment script for the L2 token factory
* Fix deploy script OVM_L2StandardTokenFactory constructor params
* Add changeset
* Cleanup deployment script for OVM_L2StandardTokenFactory
and fix a solidity linting error
* refactor(integration): Add clarity to the expectApprox function signature
* fix: skip codechecks for PRs from external repos
* DRAFT move react wallet and the contracts to more clear folders (#138)
* DRAFT move react wallet and the contracts to more clear folders
* merging the axios integration chagnes
* updated the message-relayer-fast contracts
* integrate message-relayer-fast into standard dockers
* Dockerize the message-relayer-fast
* update Readme.md
* remove duplicated contracts - just keep everything in /contracts
* add deploy for fast messenger
* message-relayer-fast testing
* Update serve.sh
* Delete yarn.lock
* Update constants.ts
* Create yarn.lock
* Update constants.ts
* Update function-manipulation.spec.ts
* increase the retries and other minor fixes
* Improved documentation
* fix omgx integration tests
* Update omgx-integration.yml
* integration test remove duplicated tests
* Fix units test configuration
* Update docker-compose-omgx-services.yml
* integration test setup fixes
* fix wallet integration test
* fix for crash on return
* integration tests for `message-relayer-fast`
* Update env.ts
* Autodeploy Token Bridges
* Update wallet contracts
* Update utils.ts
* improve omgx integration tests
* Add address manager address to GH actions for now
Co-authored-by: sahil kashetwar <>
Co-authored-by: Sahil k <sahil@enya.ai>
Co-authored-by: cby3149 <cby3149@outlook.com>
* merge conflicts
* GH actions regular changes
* husky
* Daily sync up (#144)
* build: set up eslint prettier correctly
* style: run yarn lint --fix at root
* build: add necessary packages to workspace root
* build: remove --format stylish
* build: set semvery ranges to match across packages
* build: set up prettierrc.js for monorepo
* refactor: rename Range to BlockRange
* build: set up correct working directories
* build: set up lint:fix to use eslint not prettier
* style: run lint:fix on all code
* build: remove prettier extension recommendation
* style: update configuration to include babel-eslint for .js linting
* build: set concurrency to 1 to prevent git add errors on lerna lint
* github actions: bump geth CI golang version
* fix(contracts): prevent L2->L1 calls to system contracts
* Add Factory contract for creating standard ERC20 tokens
compliant with the standard bridge
* Disallow 0 address for l1 token when creating l2 standard token
* Fix linting issue
* Add deployment script for the L2 token factory
* Fix deploy script OVM_L2StandardTokenFactory constructor params
* Add changeset
* Cleanup deployment script for OVM_L2StandardTokenFactory
and fix a solidity linting error
* refactor(integration): Add clarity to the expectApprox function signature
* fix: skip codechecks for PRs from external repos
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: ben <ben@pseudonym.party>
Co-authored-by: elenadimitrova <elena@arenabg.com>
Co-authored-by: Reggie Gomez <reggieag@gmail.com>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* docker: pin to alpine 3.13 for l2geth
A bug has appeared when older versions of Docker are used to build
alpine based images in alpine version 3.14. To prevent this problem
from happening to the users, this PR pins the version to 3.13.
The observed problem is that `make` cannot run any command and
the error message states `Operation not permitted.` Removing
`make` was one way to solve the problem but that would increase
the diff from upstream geth.
See these links for details:
https://github.com/alpinelinux/docker-alpine/issues/182
https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.14.0
* fix: update statement for skipping codechecks
* contracts: add set-l2-gasprice task
This task allows a user to update the L2 gas price using hardhat.
An example of doing so would be:
```bash
$ export CONTRACTS_DEPLOYER_KEY=0x..
$ CONTRACTS_RPC_URL=https://kovan.optimism.io npx hardhat set-l2-gasprice \
--l2-gas-price 1
```
This hardcodes the predeploy address of the `OVM_GasPriceOracle` smart
contract and the Owner must be used to do the updating, otherwise the
transaction will revert.
* removed unused functions from core utils
* [added] changeset
* next gen integration tests for the OMGX stack (#149)
* next gen integration tests for the OMGX stack
* finish first pass integration test outline
* move LP tests to the `message-relayer-fast`
* Update omgx-integration.yml
* add more tests to message-relayer-fast
* connect up the .env variables
* hard code URIs
* Update utils.ts
* Update omgx-integration.yml
* fix - should have been 8080
* Update omgx-integration.yml
* which address to use?
* Update omgx-integration.yml
* removing not needed code
* remove superfluous logging code
* Update utils.ts
* Update utils.ts
* additional comments and formatting improvements
* fix: use older changes on tests (#152)
* fix: use older structure
* correct messenger
* LP fees on the correct side
* correct messenger
* rearrange depl order
Co-authored-by: Souradeep Das <dsouradeep2@gmail.com>
* Update README_OMGX.md (#150)
Refactored some changes and added some comments I thought might be helpful for people.
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* tests: re-enable all tests (#155)
* re-enable all tests
* re-enable all tests
* Add solhint to contracts package
* Turn off compiler-version rule in solhint
* Add suggestions by @maurelian
https://github.com/ethereum-optimism/optimism/pull/1033#issuecomment-866146467
* Change solhint output formatting to table
* Disable contract-name-camelcase rule in solhint
* Fix max-line-length linting issues in contracts
* Fix quotes linting issues in contracts
* Remove private-vars-leading-underscore rule in solhint
* Add contracts linting to github action
* Fix for hardhat account balance parsing
* Disable generating the bytecodeHash in hardhat contract artifacts
* Review fixes
* Fix review notes
* Fix smockit for a change in hardhat ^2.4.0
which changes the way it parses errors from returndata
Fix provided by @smartcontracts
* dtl: configurable gas price backend
Adds a new config option `--l1-gas-price-backend` or
`DATA_TRANSPORT_LAYER_L1_GAS_PRICE_BACKEND` that can be set to `l1` or
`l2`. This impacts the behavior of the HTTP endpoint `GET /eth/gasprice`
by changing what is queried to return the L1 gas price. The L1 gas price
is required to compute the L2 fee since the L2 fee consists of
`L1 gas price * L1 gas used + L1 gas price * L2 gas limit`. If the L1
gas price differs too much between different L2 providers, then users
using `eth_estimateGas` may submit transactions with too low of a fee
and be unable to submit transactions to the sequencer.
By configuring the DTL to use L2 as the L1 gas price backend, it will
call the Sequencer's RPC endpoint `rollup_gasPrices` which returns the
L1 and L2 gas prices from the point of view of the sequencer. The L2 gas
price exists in the state, so that will always be the same between the
sequencer and any replicas. The L1 gas price does not live on chain, so
querying for it from the sequencer directly will ensure that users send
transactions with a fee that is large enough.
Also adds eth/gasprice info to README.
* Remove bl wl service (#154)
* replace `bl-wl` with direct calls the `omgx_deployer`
* Update docker-compose-omgx-services.yml
* Update up_local.sh
* Add CORS headers to http servers
* updated frontend to use the two new HTTP servers for the addresses
* update webwallet to work with both local and rinkeby
* Add missing .env variables to GH actions
* re-enable docker tages
* re-enable wallet transaction history
* Update up_local.sh
* Update up_local.sh
* Add flag to omgx_deployer to only serve addresses w/o deploying new contracts
* Update docker-compose-omgx-services.yml
* Add back tagging system and improved reliability of GH actions
* removed commented out service
* add rinkeby token addresses (#161)
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* fix: lint deploy-l2 folder in contracts
* Add AWS integration (#159)
* Add AWS integration
* Remove artifacts
* updated ops_omgx/README.md and added .github/workflows/deploy2aws-integration.yml and .github/workflows/push2aws.yml
* add automated provision and deletion of an ec2 instance for running the integration tests
Co-authored-by: Petar Denev <pdenev@gmail.com>
* fix: update CI to avoid running out of memory
* Version Packages
* ci: release latest image tags on release
* feat: update README to include info about rebasing
* Add op_exporter for sequencer metrics and health endoint
Added metric for sequencer health
Added Dockerfile for op_exporter;
Fixed Dockerfile path
* merge conflicts
* re-comment out the usual GH actions
* feat[integration-tests]: make tests work for prod networks
* chore: add changeset
* Increase client_body_buffer_size for rpc-proxy
Added client_max_body_size to rpc-proxy config
* l2geth: use `hexutil.Big` to prevent overflows
The `RollupClient` decodes the JSON from the DTL as a uint64,
this updates it to be a `big.Int`
Includes a test for the value field that ensures it does not overflow
* ci(contracts): only run codecov if contracts package is modified
In order to skip running the CodeCov job when it isn't relevant, a new job was added to the ts-packges workflow. For a PR, this job identifies all the files modified between the base branch and the tip of the PR branch, and writes to a variable which can be used to decide if subsequent jobs should run.
Github Actions provides an easy method for achieving this at the level of a workflow, but not for specific jobs within a workflow.
* Version Packages
* chore(ci): Skip codecov on push events
* feat: add workflow for running SNX test suite
* go: implement gasprices package
The `gasprices` package implements the logic that updates
L2 gasprices on the Optimistic Ethereum Network.
Co-authored-by: Karl Floersch <karl@karlfloersch.com>
* gas-oracle: implement and test
This commit adds the `gas-oracle` which is an offchain entity
that sends transactions to L2 to update the gas price. It must
be configured with a private key as the `OVM_GasPriceOracle`
is owned.
The `gas-oracle` is added to the changesets setup.
Tests are included as well as CI. Dockerizing will happen
in a follow up PR.
* gas-oracle: ci + docker build/publish
Adds a dockerfile for the `gas-oracle` as well as adding it as
a service in the `docker-compose.yaml`. It is not enabled by
default due to memory issues in CI already happening occasionally
where the integration tests are oom killed.
The `gas-oracle` is configured with a key that owns the
`OVM_GasPriceOracle`.
This PR adds the `gas-oracle` to the Github Actions
workflow that is responsible for publishing the docker images.
* Add replica (#169)
* fix: update erc20 deposits (#166)
* fix: update erc20 deposits
* fix: auto default token
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* resolve merge conflicts
* Update docker-compose.yml
* Update docker-compose.yml
* [pull] develop from ethereum-optimism:develop (#164)
* contracts: add set-l2-gasprice task
This task allows a user to update the L2 gas price using hardhat.
An example of doing so would be:
```bash
$ export CONTRACTS_DEPLOYER_KEY=0x..
$ CONTRACTS_RPC_URL=https://kovan.optimism.io npx hardhat set-l2-gasprice \
--l2-gas-price 1
```
This hardcodes the predeploy address of the `OVM_GasPriceOracle` smart
contract and the Owner must be used to do the updating, otherwise the
transaction will revert.
* Add op_exporter for sequencer metrics and health endoint
Added metric for sequencer health
Added Dockerfile for op_exporter;
Fixed Dockerfile path
* feat[integration-tests]: make tests work for prod networks
* chore: add changeset
* Increase client_body_buffer_size for rpc-proxy
Added client_max_body_size to rpc-proxy config
* l2geth: use `hexutil.Big` to prevent overflows
The `RollupClient` decodes the JSON from the DTL as a uint64,
this updates it to be a `big.Int`
Includes a test for the value field that ensures it does not overflow
* ci(contracts): only run codecov if contracts package is modified
In order to skip running the CodeCov job when it isn't relevant, a new job was added to the ts-packges workflow. For a PR, this job identifies all the files modified between the base branch and the tip of the PR branch, and writes to a variable which can be used to decide if subsequent jobs should run.
Github Actions provides an easy method for achieving this at the level of a workflow, but not for specific jobs within a workflow.
* Version Packages
* chore(ci): Skip codecov on push events
* feat: add workflow for running SNX test suite
* go: implement gasprices package
The `gasprices` package implements the logic that updates
L2 gasprices on the Optimistic Ethereum Network.
Co-authored-by: Karl Floersch <karl@karlfloersch.com>
* gas-oracle: implement and test
This commit adds the `gas-oracle` which is an offchain entity
that sends transactions to L2 to update the gas price. It must
be configured with a private key as the `OVM_GasPriceOracle`
is owned.
The `gas-oracle` is added to the changesets setup.
Tests are included as well as CI. Dockerizing will happen
in a follow up PR.
* gas-oracle: ci + docker build/publish
Adds a dockerfile for the `gas-oracle` as well as adding it as
a service in the `docker-compose.yaml`. It is not enabled by
default due to memory issues in CI already happening occasionally
where the integration tests are oom killed.
The `gas-oracle` is configured with a key that owns the
`OVM_GasPriceOracle`.
This PR adds the `gas-oracle` to the Github Actions
workflow that is responsible for publishing the docker images.
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Ben Wilson <bwilson@optimism.io>
Co-authored-by: Kelvin Fichter <kelvin@optimism.io>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: Ben Wilson <82120899+optimisticben@users.noreply.github.com>
Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
Co-authored-by: Liam Horne <li…
* tests: replica syncing (#981)
* [wip] add l2_dtl and replica images
* passing basic dummy tx test
* add erc20 test
* add sync test to ci
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
* fix[relayer]: update exported files list in package.json (#1138)
* fix[relayer]: update exported files
* chore: add changeset
* fix: import path (#1141)
* fix: correct import path for altered contract path
* chore: add changeset
* refactor: improve logging for batch submission timeout scenarios (#1120)
* Fixed CrossDomainMessenger name (#96)
* Add highest L1 and L2 block number Gauge metrics to DTL (#1125)
* build: add prom-client to data-transport-layer
* refactor: thread metrics more carefully through data-transport-layer; add two new metrics
* style: fix some style issues
* refactor: make metrics mandatory
* refactor: move metrics register code to top of file
* style: apply linting
* refactor: move promethesus initialization after express
* refactor: move promBundle call up, provide registry
* build: add changeset
* Improve Watcher ability to find transactions (#1107)
* remove listeners and use loop to find tx receipt
* add yarn ready
* moved filters inside loop
* [added] changeset
* Add minimal vscode settings and extensions (#1109)
* chore: add minimal vscode settings and extensions
* chore: Add "files.trimTrailingWhitespace" to vscode native config
* chore: replace vscode prettier plugin with eslint plugin
* fix[contracts]: remove part of MultiMessageRelayer deployment (#1144)
* fix[contracts]: remove part of MultiMessageRelayer deployment
* chore: add changeset
* Define L1 Starting block via OwnershipTransferred rather than AddressSet (#1129)
* Update service.ts
* Create thirty-years-look.md
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* Easy fix for broken watchers (#1121)
* Easy fix for broken watchers
* Ran yarn changeset
Co-authored-by: Liam Horne <liam@lihorne.com>
* feat: go packages (#1111)
* go: add utils module
* readme: update
* Version Packages (#1094)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* build: add husky pre-commit hook to lint (#1146)
* feat[contracts]: add mainnet deploy script (#1147)
* Add mainnet deploy script
* Update mainnet.sh
* Address PR review feedback
* feat: mainnet contract deployment 0.4.0 (#1148)
* feat: mainnet contract deployment 0.4.0
* feat: deployments readme
* chore: add changeset
* contracts: remove dead contract
* contracts: remove dead config
* tests: fix to not test for old contracts
* feat: `rollup gasPrices` RPC endpoint (#1136)
* feature: l2geth endpoint
* chore: add changeset
Co-authored-by: Liam Horne <liam@lihorne.com>
* Adds l2 standard bridge to contracts markdown file (#1151)
* Version Packages (#1150)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Add more info about our branching strategy to the README (#1114)
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Remove references to OVM_L1ETHGateway in deployments and readme (#1119)
* Keep the user logged in after changing chain (#99)
* Keep the user logged in after changing chain
* Update Nft.js
* Detect if user is in the wrong chain
Co-authored-by: cby3149 <cby3149@outlook.com>
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* Merge conflics resolve (#110)
* wip
* gethl2
* wip
* batch submitter
* core utils
* DTL
* message relayer
* contracts
* wip
* Update service.ts
* DTL
* messaage-relayer
* Update yarn.lock
* final 5 files
* [pull] develop from ethereum-optimism:develop (#91)
* chore: reduce hardhat timeout to 20 seconds (#968)
* fix: force LF line endings for scripts to avoid docker problems on Windows (#974)
* fix: use correct line endings for windows
* chore: add changeset
* refactor[contracts]: Turn ExecutionManagerWrapper into a predeployed contract (#808)
* wip: Started working on L2 contract testing revamp
* test: clean tests for ProxyEOA
* style: clean imports for ProxyEOA tests
* test: port tests for ECDSAContractAccount
* fix tests and add wrapper to dump
* fix: add em wrapper to l2 deploy
* ffix: add comments to wrapper contract
* fix: add more comments
* fix: add smock comment for unbind
* Update packages/smock/src/smockit/binding.ts
* maintenance[contracts]: use dashes in chain container names (#819)
* maintenance: use dashes in chain container names
* chore: add changeset
* feat[contracts]: temporarily disable EOA upgrades (#857)
* feat[contracts]: disable eoa upgrades temporarily
* chore: add changeset
* Update OVM_ProxyEOA.sol
* fix: turn upgrade into a noop
* lint: fix
* feat[contracts]: Update Lib_AddressManager.AddressSet event to speed up data transport layer (#820)
* feat: update and improve AddressSet event
* chore: add changeset
* Update Lib_AddressManager.sol
* Reduce gas costs of deposits (#667)
* Remove messageNonce from BaseCrossDomainMessenger and use CTC queue lenght instead
Remove Abs_BaseCrossDomainMessenger and restore dedicated nonce generation in OVM_L2CrossDomainMessenger
Fix typo
* Remove sentMessages mapping from L1CrossDomainMessenger storage
and use the nonce to check for existence of replayed transaction
* Refactor out common library function for getting cross domain calldata
* Post rebase fixes
* Use the queueIndex to check the transaction was enqueued
* Fix tests for L1CrossDomainMessenger.replayMessage
Also make that test work with an actual CanonicalTransactionChain implementation rather than a smock
* Lint fixes
* Optimise the resolve calls into the AddressManager lib
* Rename the nonce parameter to be clear
* Update test name
Co-authored-by: ben-chain <ben@pseudonym.party>
* Rename getXDomainCalldata to encodeXDomainCalldata to match the new Lib_CrossDomainUtils
Co-authored-by: ben-chain <ben@pseudonym.party>
* optimism: bump gaslimit to 10 million #870 (#871)
* optimism: bump gaslimit to 10million
* chore: add changeset
* optimism: bump max gaslimit to 10 mil
* chore: add changeset
* chore: remove unnecessary changeset
* chore: remove unnecessary changeset
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* fix: use correct contract name in tests (#921)
* fix: disable upgradability from ECDSA Account (#885)
* l2geth: remove `SignatureHashType` (#752)
* l2geth: remove tx type
* l2geth: no longer parse type in rollup client
* chore: add changeset
* chore: remove extra sighash params
* fix: do not check txtype in integration tests
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* feat[contracts]: introduce OVM_GasPriceOracle (#912)
* feat[contracts]: congestion price oracle
* chore: add changeset
* contracts: gas price oracle (#917)
* contracts: gas price oracle
* tests: update
* fees: fix tests
* contracts: simplify gas price oracle
* lint: fix
* test: execution price is at the 1st storage slot
* chore: rename predeploy to GasPriceOracle
* chore: rename gas price oracle test name
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* fix: configure max gas limit to 11m (#928)
Uniswap V3 contracts require that, otherwise they throw call exceptions at deployment
* Consolidate Predeploy Addresses (#931)
* added library for predeploy addresses
* refactor tests and other packages to use exported predeploys
* revert library usage in OVM_ECDSAContractAccount
* lint
* added newline
* fixed address typos
Co-authored-by: rajivpo <rajivpatel-oconnor@Rajivs-MacBook-Pro-2.local>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* chore: remove yarn-error.log and gitignore it (#956)
* feat[contracts]: Replace Lib_RingBuffer with a much simpler Lib_Buffer (#821)
* feat[contracts]: replace Lib_RingBuffer with a simpler Lib_Buffer
* chore: changeset
* test: add tests for Lib_Buffer
* lint: fix
* test: add extra coverage for Lib_Buffer
* Update packages/contracts/contracts/optimistic-ethereum/libraries/utils/Lib_Buffer.sol
Co-authored-by: ben-chain <ben@pseudonym.party>
* add some extra comments
Co-authored-by: ben-chain <ben@pseudonym.party>
* fix(contracts): import predeploys (#982)
* fix(contracts): import predeploys
* fix: lint
* feat: add hardhat deploy instructions to readme (#965)
* feat: add deployment instructions to readme
* Add changeset
* fix style
* Update README.md
* feat: fees v2 (#976)
* l2 geth: new fee logic
* l2 geth: migrate to fees package
* core-utils: new fee scheme
* chore: add changeset
* l2geth: delete dead code
* integration-tests: fix typo
* integration-tests: fixes
* fees: use fee scalar
* lint: fix
* rollup: correct gas payment comparison
* fix(integration-tests): do not hardcode gas price
* core-utils: update with new scheme
* l2geth: refactor rollup oracle
* l2geth: clean up DoEstimateGas
* l2geth: implement latest scheme
* tests: fix up
* lint: fix
* l2geth: better sycn service test
* optimism: rename to TxGasLimit
* fee: fix docstring
* tests: fix
* variables: rename
* l2geth: prevent users from sending txs with too high of a fee
* integration-tests: fix import
* integration-tests: fix type
* integration-tests: fix gas limits
* lint: fix
* l2geth: log error
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* Add static analysis action (#848)
* Add static analysis github action
setup python and install slither
* Add nvmrc file for setting node to v14.17
* Update slither command run to link missing contract packages from monorepo root
* Add steps for installing dependencies
* Add yarn build step to github action
* Enable colour in github action for static analysis
* Disable certain detectors
* Ensure slither does not fail build
* Add instructions on running static analysis to monorepo readme
* build(deps): bump ws from 7.4.4 to 7.4.6 in /ops/docker/hardhat (#987)
Bumps [ws](https://github.com/websockets/ws) from 7.4.4 to 7.4.6.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.4.4...7.4.6)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix[l2geth]: fix accidental merge conflict (#994)
* feat[message-relayer]: relay tx generator (#952)
* feat[message-relayer]: relay tx generator
* whoops, I burned our infura key
* fix minor bug
* add comments
* add more comments and clean stuff up
* add empty test descriptions
* add tests
* move smock to dev deps
* chore: add changeset
* minor cleanup to merkle tree proof function
* use bignumber math to avoid nested await
* use a better interface
* minor fixes and simplifications
* backwards compatible dtl syncing (#986)
* kovan: fix attempt
* kovan: db fix
* kovan: types are strings from db
* l2geth: parse things as strings
* chore: add changeset
* dtl: also stringify the range query
* geth: dereference
* geth: assign err
* dtl: handle null
* dtl: fix unit tests
* fix[smock]: fix broken call assertions for overloaded functions (#996)
* fix[smock]: fix broken call assertions for overloaded functions
* chore: add changeset
* minor correction and add a test
* add a test for non-overloaded functions
* fix[message-relayer]: fix failing test because of merge with develop (#1000)
* fix[message-relayer]: remove spreadsheet mode (#998)
* fix[message-relayer]: remove spreadsheet mode
* chore: add changeset
* Lower local rollup timestamp refresh (#985)
* update rollup timestamp refresh
* increase refresh time to 5s
* feat: fees v3 (#999)
* core-utils: fee impl v3
* l2geth: fees v3 impl
* integration-tests: update for fees v3
* chore: add changeset
* fix: typo
* integration-tests: fix and generalize
* fees: update fee scalar
* l2geth: check gas in the mempool behind usingovm
* tests: fix up
* l2geth: remove dead var
* truffle: fix config
* fix: remove dead coders (#1001)
* chore: delete dead coders
* chore: add changeset
* dtl: remove dead imports
* core-utils: delete dead tests
* batch-submitter: remove txtype
* chore: add changeset
* docs[message-relayer]: add a README and improve the interface for generating proofs (#1002)
* docs[message-relayer]: add basic docs and clean up an interface
* chore: add changeset
* dtl: log error stack for failed http request (#995)
* dtl: log error stack for failed http request
* chore: add changeset
* Add rpc-proxy service for whitelisting JSON RPC methods to the sequencer. (#945)
* Add healthcheck endpoint for rpc-proxy
Added ethereum-nginx-proxy source
updated README and docker image build
* Check ETH_CALLS_ALLOWED is set, clean up comments, remove old Dockerfile
* Pass additional information across domains via token gateways (#824)
* feat(contracts): add from and data args to L1ERC20Gateway
fix(integration): add gasLimit to fundUser
refactor(contracts): add data to gateway events
add changeset
fix(integration): provide data in outboundTransfer
refactor(contracts): reset Abs_L2TokenGateway to Abs_L2DepositedToken
refactor(contracts): fix mismatched names
* feat[contracts]: add custom gas arg to gateway
fix(contracts): take max of user vs. default gas
* fix(integrations): update ovm-eth function call
* fix(integration): remove unecessary explicit gasLimit
* test(contracts): 32kb transfer, 9MM gas
* fix(contracts): fixup comment, bytes arg last
* fix(integration): args order in integrations
* fix(contracts): remove unused L2 gas arg
* fix(contracts): limit data that can be passed to L2
* fix(integration): better tests for data length
* test: check for error on too large data
* Experimental: specify gaslimit in before hook
* fix(integration): add l2 gas argument
* fix: increase gas on fundUser
* fix(contracts): remove duplicate max size limit
* fix(integration): fine tune gas amounts
* lint
* fix: large data test
* fix(integration): set gas closer to real cost
* fix(contracts): remove unused bridge variables
These variables were the default gas amounts for cross domain messages
* fix(contracts): Reorder args
Place dynamic length args last
* fix(integration): update estimateGas values
* fix(integration): reset eth withdraw estimate to 21000
* fix(integration): update expected gas amount
* fix(integration): reduce gas amount for ETH withdraw
* More consistent style for Constant values (#991)
* chore(contracts): make container addresses be constants
chore(contracts): consistent style for constant vars
* chore(contracts): add internal on predeploy constants
* feat: deployment config for fee oracle contract (#936)
* feat[contracts]: add GasPriceOracle w/o predeploy
Based on #912
* feat[contracts]: congestion price oracle
* chore: add changeset
* contracts: gas price oracle (#917)
* contracts: gas price oracle
* tests: update
* fees: fix tests
* contracts: simplify gas price oracle
* lint: fix
* test: execution price is at the 1st storage slot
* chore: rename predeploy to GasPriceOracle
* chore: rename gas price oracle test name
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* Add an L2 deploy script for gas oracle contract
* Add a kovan deployment artifact
* Add deployment to readme
* Add extra validation & initial execution price
* Update README.md
* Fix execution price logic
* Perform new deployment with final contract
* contracts: better require in ovm gas price oracle
* Deploy L2GasPriceOracle
* Update contract to use new fee logic & rename to gas
* Deploy updated contract
* Fix lint
* gas price oracle: do not restrict gas price
* gas price oracle: new deployment
* tests: delete dead test
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* ops: expose debug namespace (#1007)
* develop merge fixes
* refactor[l2geth]: queue origin type (#975)
* refactor: queueOrigin type
* Convert queueOrigin to uint8 in encode
* Add changeset
* Regenerate json marshall
* style: combine lines
* Add Stringer for QueueOrigin
* Turn QueueOrigin into uint8
* l2geth: gen tx meta fix
* l2geth: gen tx meta fix
* lint
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
* fix(sync-service): prevent underflows (#1015)
* fix(sync-service): prevent underflows
* chore: add changeset
* chore: remove dead confirmation depth
* chore: remove eth1conf depth from rollup config
* test: remove duplicate value in array (#1014)
* ci: tag docker image for canary with abbreviated GITHUB_SHA (#1006)
* ci: tag docker image for canary with abbreviated GITHUB_SHA
* ci: update from 6 bytes to 8 bytes of abbreviation
* refactor: improve logging for transactions being submitted to chain with gasPrice (#1016)
* refactor: improve logging for transactions being submitted to chain with gasPrice
* lint: apply lint autofixes
* dtl: remove stringify from db logic + more overflow protection (#1010)
* dtl: remove stringify from db logic
* l2geth: overflow protection
* dtl: overflow protection
* chore: add changeset
* ci: upload logs for failed integration tests (#1020)
* fix(dtl): improve slow blocking JSON parsing that occurs during l2 sync (#1019)
The use of eth_getBlockRange returns a large response which is very
slow to parse in ethersjs, and can block the event loop for upwards
of multiple seconds.
When this happens, incoming http requests will likely timeout and fail.
Instead, we will parse the incoming http stream directly with the bfj
package, which yields the event loop periodically so that we don't
fail to serve requests.
* fix: lint errors in dtl (#1025)
* fix[dtl]: fix dtl bug breaking verifiers (#1011)
* fix[dtl]: fix dtl bug breaking verifiers
* tweaks so tests pass
* chore: add changeset
* fix: deterministic blockhashes (#1032)
* config: set etherbase
* l2geth: add deterministic clique key
* l2geth: default value
* chore: add changeset
* test: add sync test for deterministic blockhash
Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
* Version Packages (#978)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* ci: add sync test's own workflow (#1031)
* fix(dtl): incorrect parsing of eth_getBlockRange result (#1037)
* Version Packages (#1045)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix: no gas refund (#1043)
* l2geth: remove the gas refund
* chore: add changeset
* refactor[contracts]: remove one-off GasPriceOracle deployment file (#1046)
* refactor[contracts]: remove one-off gpo deployment
* chore: add changeset
* feat[contracts]: introduce new L1ChugSplashProxy contract (#1009)
* feat[contracts]: add L1ChugSplashProxy
* improve comments slightly
* start adding tests
* add more tests
* make the system pausable
* added another test
* add some extra comments
* Update packages/contracts/test/contracts/chugsplash/L1ChugSplashProxy.spec.ts
Co-authored-by: Maurelian <maurelian@protonmail.ch>
* Update packages/contracts/test/contracts/chugsplash/L1ChugSplashProxy.spec.ts
Co-authored-by: Maurelian <maurelian@protonmail.ch>
* chore: add changeset
* address review feedback
Co-authored-by: Maurelian <maurelian@protonmail.ch>
* feat[contracts]: add sequencer fee wallet (#1029)
* wip: first draft of the fee wallet
* add fee wallet to dump
* rename to sequencer vault
* add L1 fee wallet to geth config
* add unit tests
* fix geth linting error
* add a basic integration test
* fix broken integration test
* add test for correct storage slot
* add integration test for fee withdrawal
* fix typo in integration tests
* fix a bug bin integration tests
* Update OVM_SequencerFeeVault.sol
* fix bug in contract tests
* chore: add changeset
* fix bug in contract tests
* build(deps): bump glob-parent from 5.1.1 to 5.1.2 (#1036)
Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/gulpjs/glob-parent/releases)
- [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2)
---
updated-dependencies:
- dependency-name: glob-parent
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: Liam Horne <liam@lihorne.com>
* fix: predeploy gasprice oracle (#1039)
* l2geth: delete extra config options
* l2geth: stop using extra config options
* l2geth: more stop using extra config options
* chore: add changeset
* l2geth: add new config for gpo owner
* chore: add changeset
* l2geth: fix tests
* tests: fix build
* l2geth: optimize loops (#1027)
* l2geth: optimize loops
* l2geth: stop ticker when done
* l2geth: don't wait for first tick
* chore: add changeset
* Enable custom tagging of release docker image (#1048)
* ci: enable custom tagging of release docker image
* ci: refactor to add prerelease prefix for secuirty
* doc: typo
* ci: fix indentation issue of canary workflow
* ci: fix typo with GITHUB_SHA
* fix: typo in USE_HARDHAT config (#1023)
* fix: abi encoded tx (#1049)
* contracts: don't double rlp decode
* chore: add changeset
* lint: fix
* deps: update
* linting: cleanup
* feat: contracts: use selector
* fix: contracts: use typescript
* contracts: use interface
* l2geth: bump to go 1.15 (#1058)
* l2geth: bump to go 1.15
* chore: add changeset
* Change monotonicity band-aid code to log warnings not errors (#1060)
* refactor: change monotonicity band-aid code to log warnings not errors
* build: add changeset
* feat(contracts, l2geth): native ETH value support for ovmCALL (#1038)
* feat(contracts): add ovmCALL-types with native value
* add ovmCALLVALUE context
* add ovmBALANCE
* test success and revert cases
* test empty contract case
* chore: lint
* test(integration-tests): ovmCALL-types with value (compiler and wrapper)
* fix ovmDELEGATECALL type, update tests
* add ovmSELFBALANCE
* fix ovmDELEGATECALL jumping to CALL
* chore: lint
* fix(contracts): account for intrinsic gas of OVM_ETH sends
* fix(contracts): merge conflict bug
* fix(contracts): update gas benchmark
* feat(contracts, integration-tests): use new value-compatible compiler
* feat(contracts,l2geth): support value calls in OVM_ECDSAContractAccount
* fix(contracts): ovmDELEGATECALL does not change message context
* feat(contracts): sending value between EOAs
* test(integration-tests): ovmDELEGATECALL preserves ovmCALLVALUE
* test(integration-tests): assert ovmSELFBALANCEs correct
* test(integration-tests): intrinsic gas for eth value calls
* test(integration-tests): update gas values
* chore(contracts): lint
* feat(contracts, l2geth): eth_calls with nonzero value
* chore: minor fixups and comments based on PR feedback
* test(integration-tests): add requested tests from PR reviews
* test(integration-tests): ovmSELFBALANCE is preserved in ovmDELEGATECALLs
* fix(contracts): fix bug where ovmDELEGATECALL could fail if balance was lower than the ovmCALLVALUE
* chore: add changeset
* fix(contracts): update intrinsic gas for worst-case value sends
* chore: address final PR nits/improvements
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
* Add erc1271 support to contract account (#1052)
* add ERC1271 support, failing unit tests
* add integration test for isValidSignature
* remove .only
* lint
* add changeset
* clean up 1271 tests and lint
* switch back to using waffle wallet
* lint
* fix import
* feat[contracts]: slightly better account funding for hardhat accounts (rebased) (#1065)
* feat[contracts]: better account funding for hardhat accounts
* add a sleep to avoid any potential problems
* chore: add changeset
* fix: bug with gas estimation in funding step
* fix: limit to 20 accounts max
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
* Ensure Sentry is correctly set up for DTL and MR (#1054)
* refactor: add logger and metrics to options for BaseService
* refactor: thread sentryOptions through from message-relayer into BaseService
* refactor: ensure DTL Logger is using Sentry for errors
* style: lint base-service.ts
* refactor: init Sentry on batch-submitter too
* refactor: init Sentry on message-relayer too
* refactor: pass in basic logger to MessageRelayerService
* build: provide changeset
* fix: correct usage of use-sentry boolean config
* refactor: appropriately type loggingOptions
* build: add @sentry/node
* build: add @sentry/node to message-relayer and fix linting issue
* Add more logging information to monotonicity violation logs (#1066)
* refactor: log idx of monotonicity violation from batch
* build: add changeset
* temporarily disable hardhat example tests (#1071)
* fix: monotonicity auto healer (#1070)
* fix: monotonicity auto healer
* add: changeset
* Version Packages (#1053)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Standard token bridge (#988)
* Remove abstract token gateway and deposited token implementations
* Further simplification of bridge contracts
* Standart token bridge and L2 token implementation
* Fix spacing
* Implement case when a bad deposit happens to a nonexistent L1<>L2 token pair
* Use SafeMath in common token bridge accounting
* test(contracts): fix finalizeWithdrawal test
* fix(contracts): use SafeERC20 on token deposits
* Rename OVM_L1ERC20Gateway to OVM_L1ERC20Bridge contract
* Rename iOVM_L1ERC20Gateway to iOVM_L1ERC20Bridge contract
* Cleanup gateway to bridge rename
* Better name for the mapping holding l1->l2 deposit amounts
* Use OZ SafeMath
* Rename local variables in OVM_L2DepositedERC20 from gateway to bridge
* Merge ETH and ERC20 bridge contracts
* Rename OVM_L1ERC20Bridge to OVM_L1StandardBridge and fix tests from merging the ETH and ERC20 bridges
* Better name for iAbs_BaseCrossDomainMessenger -> iOVM_CrossDomainMessenger
* Correct the bounce back of deposit sender and recipient properties
* Remove obsoleted event from OVM_L2DepositedERC20
* chore(contracts): change references from ETHGateway to Bridge
* Fix a linting error
* fix(contracts): add bridge to deployer
* Split off ERC20Bridge interface for the purposes
of being reused in custom ERC20 bridges
* Split off interface natspec definitions
* Draft version of OVM_L2DepositedERC20 splitted into a standard L2 erc20: L2StandardERC20 and
a common L2 bridge: OVM_L2StandardBridge
* style(contracts): define L1_ETH_ADDRESS as constant
* test(integration): update interface to use depositETH
* test(contracts): fix OVM_L1StandardBridge tests
* test(contracts): fix L2 Standard Bridge tests
* test(contracts): lint and remove an obsolete test case
* Fix modifier check to comply with the L2 bridge distinction from L2 token
* Simplify address <> interface casting in bridges
* Ensure natspec comments are correct
also add l1 and l2 token params to WithdrawalInitiated event for consistency
* Fix issues in L1 and L2 bridges to ensure
cross domain messages are sent only between the two bridges
also adjusted withdrawals to send to either finalizeETHWithdrawal or finalizeERC20Withdrawal
depending on which asset is being withdrawn
* Remove AddressManager from the L1 standard bridge
* REVERT ME: instruments cross domain enabled
* fix(contracts): remove Address Manager from L1 Bridge
* feat(contracts): make L2 Standard Bridge a predeploy
* WIP: update deployments for standard bridges
* WIP: update deployments for standard bridges
* l2geth: TEMP log contract calls
* chore(l2geth): replace eth gateway with standard bridge
* fix(contracts): make contract-deployment/config work
* WIP fix(integration): update integration tests for bridge
* Remove ovmEth from L1 Standard bridge as obsoleted
* Separate ERC20 standard implementation from L2 bridge
* Formatting fixes
* chore(l2geth): replace eth gateway with standard bridge
* Revert "REVERT ME: instruments cross domain enabled"
This reverts commit d5bb8f8f67974d0a3e65fc000f08858328a4bbbc.
* fix: lint ts
* Implement EIP-165 in the Standard L2 ERC20 token
Also switch that to be based off the OpenZeppelin default implementation plus mint and burn
Additionally remove the obsoleted iOVM_ERC20
* fix(contracts): add deployment check on bridge proxy
fix(contracts): whitespace
fix(contracts): init bridge implementation with non-zero address
* Remove dependency on Ownable contract for the StandardERC20 token on L2
* fix(contracts): update deployment scripts
* fix: lint
* remove debugging code
* fix: correct rpc get balance slot
* restore l2 cross domain messenger
* fix: lint
* Add a test for a non compliant token deposit
* Only allow EOAs to deposit ETH and ERC20
* Add comments and tests for ERC165 implementation
* Decide against using explicit ETH MOCK address as we're not using it for checks
* Fix linting issues
* Add onlyEOAContract restriction to standard bridge withdrawals
* Update codehashes in L2 Standard bridge
* fix(ops): remove unintentionally added file
* feat(contracts): add expectApproxGasCost function
* fix(integration): proper arrayify input on fundUser
* fix(integration): proper gas value checks
* Revert "Add onlyEOAContract restriction to standard bridge withdrawals"
This reverts commit 2713c06ceb2609e4f13718e1034a4d76210d9758.
* fix(contracts): removed unused expectApproxGasCost for now
* fix(contracts): update OVM_SequencerFeeVault for bridge changes
* lint
* Update deployment for L1 Bridge w/ ChugSplash
* Revert "l2geth: TEMP log contract calls"
This reverts commit 21d42259278449f221bf34605162229b3d9d4fa9.
* Apply suggestions from code review
* Apply suggestions from code review
* fix(contracts): deploy with chugsplash proxy
* fix(contracts): add working bridge and chugsplash proxy deployment
* fix(contracts,integration): 500k gas for depositETH
* comment(contracts): describe failed deposit handling on l2
* Apply suggestions from code review
Co-authored-by: ben-chain <ben@pseudonym.party>
* docs: add changeset
* fix(integration): set working l2 gas amount on funduser
* test(integration): add receive() test
* fix(contracts): reset receive to 1.2MM l2 gas
* test(examples): skip l1-l2 example test for now
* fix(contracts): drop hardcoded gas to 500k in receive()
* fix(contracts): use abi.encodeWithSignature
* fix(contracts): resolve merge conflicts
* feat(integration): add expectApprox for flexible gas testing
* fix(integration): fix failing gas tests
* fix: incorrect l2 gas for deposit
* Update utils.ts
* fix(workflow): disable l1-l2 example until npm imports are fixed
* chore: final round of PR review nits and tests
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: ben-chain <ben@pseudonym.party>
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
* fix: comment out codeowners (#1073)
* fix: use predeploy constant lib for em wrapper (#1075)
* fix: use predeploy constant lib for em wrapper
* chore: add changeset
* fix[l2geth]: off-by-one sometimes breaking replica sync (#1082)
* fix[l2geth]: off-by-one sometimes breaking replica sync
* chore: add changeset
* fix(l2geth): Log 'end of OVM execution' correctly (#1080)
* refactor[contracts]: move account contracts to predeploy folder (#1085)
* refactor[contracts]: move account contracts to predeploy folder
* chore: add changeset
* maintenance[contracts]: rename precompiles test folder to predeploys (#1086)
* fix[bs]: disambiguate generic submission errors (#1051)
* fix[bs]: disambiguate generic submission errors
* add cases for errors
* separate out errors from transaction reverts with reasons
* remove extraneous errors
* WETH deposit and withdraw on OVM_ETH (#1083)
* feat(contracts): add no-op WETH9 functionality to OVM_ETH
* working WETH deposit and withdraw + tests
* add changeset
* address PR feedback
* update WETH9 contract implementation
* add fallback to WETH9
* add fallback and revert withdraw test
* update nit comment
Co-authored-by: ben <ben@pseudonym.party>
* Also move the accounts interface to iOVM/predeploys (#1087)
* refactor[contracts]: move account interface to predeploy folder
* chore: add changeset
* Version Packages (#1089)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix: use -z flag for var unset in canary
* Use Eslint instead of Tslint (#1005)
* removed tslint
* forgot to commit files
* made .eslintrc.js consistent for all subdirs and other cleanup
* [removed] includes and files keys from tsconfig.json
* removed file level linting exceptions and added details to line level
* added changeset
* fixed newly introduced linting errors from rebase
* enable json import for batch submitter
* removed ecdsa-coder
* maybe a tsconfig issue?
* Update deploy.ts
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: platocrat <37757724+platocrat@users.noreply.github.com>
* metrics[batch-submitter]: add new batch submitter metrics (#1074)
* metrics[batch-submitter]: add new batch submitter metrics
* chore: changeset
* account for failed submissions
* Fix canary publishing (#1093)
* ci: fix custom docker tag
* ci: use new env file
* ci: use outputs from previous job
* ci: fix headers of jobs
* ci: inherit canary tag from builder
* feat[ci]: upload logs for sync tests if failure (#1098)
* deploy: goerli 0.4.0 (#1099)
* deployments: goerli 0.4.0 rc
* readme: update
* chore: add changeset
* fix[dtl]: defend against RPC provider missing events (#1084)
* fix[dtl]: defend against RPC provider missing events
* chore: add changeset
* respond to review comments
* better error handling for missing handlers
* deploy: kovan v.4.0 rc (#1101)
* deploy: kovan v0.4.0 rc
* chore: add changeset
* readme: update
* maintenance[monorepo]: first pass update to README (#1106)
* maintenance[monorepo]: first pass update to README
Doing some relatively minor updates to the README just to clean things up a bit.
* replying to review comments
* Move the metric prefix string to a label (#1047)
Added changeset and fixes
Changeset to patch
* fix[smock]: add support for hardhat 2.4.0 (#1112)
* fix[smock]: add support for hardhat 2.4.0
* chore: add changeset
* lint: fix
* build(deps): bump hosted-git-info from 2.8.8 to 2.8.9 (#1064)
Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.8 to 2.8.9.
- [Release notes](https://github.com/npm/hosted-git-info/releases)
- [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md)
- [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.8...v2.8.9)
---
updated-dependencies:
- dependency-name: hosted-git-info
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* Misc. small improvements to README (#1115)
* Update README.md
* Update README.md
* fix[dtl]: use the same L2 chain ID everywhere (#1122)
* fix[dtl]: use the same L2 chain ID everywhere
* chore: add changeset
* fix: make sync tests only on workflow dispatch (#1123)
* fix[dtl]: remove old stringification function (#1134)
* fix[dtl]: remove old stringification function
* chore: add changeset
* fix[dtl]: log server errors as ERROR instead of INFO (#1133)
* fix[dtl]: log server errors as ERROR instead of INFO
* chore: add changeset
* Contracts: connectL1Contracts & connectL2Contracts (#713)
* Contracts: connect-contracts
* Trying to resolve build problems
* connect-contracts build working
* Adds artifacts-ovm back to gitignore
* Removes incorrect changes
* Adds copy-artifacts script
* Adds test file (not working yet)
* fix: incorrect contract instantiation
* Improves tests and removes old deployment versions
* Single source of truth for predeploy addresses
* Reverts deployments/README.md
* Makes connect-contracts more DRY
* Adds missing @ethersproject/abstract-signer dependency
* Adds argument evaluation
* Adds L1Contracts and L2Contracts types
* Attempts removing artifacts-ovm again
* Adds webpack config (not working yet)
* build: add artifacts to dist (#776)
* Updates lint rule
* Adds l2 imports
* Fixes dependency tree bug
* Removes webpack stuff
* Fixing package.json issues and adds .DS_Store to gitignore
* Removes test-contracts script
* Reverting script change
* Adds comments
* Adds comment
* Renames deployments folders
* Fixes linting errors
* Generates markdown
* build: add deployments directory to Dockerfiles
* Removes unneeded contracts, improves error handling and tests
* Adds changeset
* yarn.lock
* Removes console.log
* Changes from minor to patch version
* Fixes lint errors
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* fix: prevent overflow in abi encoding (#1135)
* l2geth: prevent overflow in abi encoding to ovm codec tx
* chore: add changeset
* tests: replica syncing (#981)
* [wip] add l2_dtl and replica images
* passing basic dummy tx test
* add erc20 test
* add sync test to ci
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
* fix[relayer]: update exported files list in package.json (#1138)
* fix[relayer]: update exported files
* chore: add changeset
* fix: import path (#1141)
* fix: correct import path for altered contract path
* chore: add changeset
* refactor: improve logging for batch submission timeout scenarios (#1120)
* Add highest L1 and L2 block number Gauge metrics to DTL (#1125)
* build: add prom-client to data-transport-layer
* refactor: thread metrics more carefully through data-transport-layer; add two new metrics
* style: fix some style issues
* refactor: make metrics mandatory
* refactor: move metrics register code to top of file
* style: apply linting
* refactor: move promethesus initialization after express
* refactor: move promBundle call up, provide registry
* build: add changeset
* Improve Watcher ability to find transactions (#1107)
* remove listeners and use loop to find tx receipt
* add yarn ready
* moved filters inside loop
* [added] changeset
* Add minimal vscode settings and extensions (#1109)
* chore: add minimal vscode settings and extensions
* chore: Add "files.trimTrailingWhitespace" to vscode native config
* chore: replace vscode prettier plugin with eslint plugin
* fix[contracts]: remove part of MultiMessageRelayer deployment (#1144)
* fix[contracts]: remove part of MultiMessageRelayer deployment
* chore: add changeset
* Define L1 Starting block via OwnershipTransferred rather than AddressSet (#1129)
* Update service.ts
* Create thirty-years-look.md
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* Easy fix for broken watchers (#1121)
* Easy fix for broken watchers
* Ran yarn changeset
Co-authored-by: Liam Horne <liam@lihorne.com>
* feat: go packages (#1111)
* go: add utils module
* readme: update
* Version Packages (#1094)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* build: add husky pre-commit hook to lint (#1146)
* feat[contracts]: add mainnet deploy script (#1147)
* Add mainnet deploy script
* Update mainnet.sh
* Address PR review feedback
* feat: mainnet contract deployment 0.4.0 (#1148)
* feat: mainnet contract deployment 0.4.0
* feat: deployments readme
* chore: add changeset
* contracts: remove dead contract
* contracts: remove dead config
* tests: fix to not test for old contracts
* feat: `rollup gasPrices` RPC endpoint (#1136)
* feature: l2geth endpoint
* chore: add changeset
Co-authored-by: Liam Horne <liam@lihorne.com>
* Adds l2 standard bridge to contracts markdown file (#1151)
* Version Packages (#1150)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Add more info about our branching strategy to the README (#1114)
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Remove references to OVM_L1ETHGateway in deployments and readme (#1119)
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: Elena Gesheva <elena@arenabg.com>
Co-authored-by: ben-chain <ben@pseudonym.party>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
Co-authored-by: Karl Floersch <karl@karlfloersch.com>
Co-authored-by: Rajiv Patel-O'Connor <rajiv.patel.oconnor@gmail.com>
Co-authored-by: rajivpo <rajivpatel-oconnor@Rajivs-MacBook-Pro-2.local>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
Co-authored-by: Ben Wilson <82120899+optimisticben@users.noreply.github.com>
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Tim Myers <timmyers09@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Annie Ke <annieke8@gmail.com>
Co-authored-by: platocrat <37757724+platocrat@users.noreply.github.com>
Co-authored-by: Matt Masurka <m.masurka@gmail.com>
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
Co-authored-by: Alejandro Santander <Palebluedot@gmail.com>
* Re-apply key changes on top of optimism most current develop
* Add docker-compose-replica.yml (#109)
* Create docker-compose-replica.yml
* Add replica service
* Update docker-compose-omgx-replica.yml
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* fix linter; patch gethl2
* configure the deployer correctly
* fix proposer / batch submitter
* update chainIDs
* update rpc test
* Create README_OMGX.md
* upstream - needs more work
* Adds delay to watcher (#1159)
* Adds delay to watcher
* Simplifies delay
* Adds changeset
* Fix wallet test
* Fix deployment test
* Add Python
* Update Dockerfile.omgx_monorepo
* Remove package-lock
* fix: bind dtl functions for missing event codepath (#1161)
* dtl: bind this in L1 missing element error handlers
* dtl: add additional logline
* chore: add changeset
* dtl: add more metrics
* dtl: use counter instead of gauge
Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
* fix: remove 'editor.formatOnSave' from global settings' (#1163)
* merge conflicts
* Update pre-commit
* Version Packages (#1167)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* minor
* Update pre-commit
* Fix wallet test (#119)
* Fix wallet test
* Fix deployment test
* Add Python
* Update Dockerfile.omgx_monorepo
* Remove package-lock
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* Reapply standard changes on top of current develop
* Update package.json
* doc: add notes for releasing new versions with changesets (#1166)
* Bind correct object to method handler in DTL (#1168)
* fix: bind correct object to method handler
* build: add changeset
* Version Packages (#1169)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Fix web wallet
* Fix integration test (#124)
* Fix integration test (#125)
* Fix integration test
* Fix integration test
* Fix wallet_react
* Fix lint test
* Remove package-lock
* Update integration.yml
* Fix wallet deployer
* Collect docker log
* Fix l1-l2-deposit-withdrawal test
* Fix sync test
* Add chainID to deployer config
* make sync tests dispatch only
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* Add short contribution section to primary README (#1157)
* Add short contribution section to primary README
* Update README.md
* fix: prevent batch submitter from submitting batches if low on ETH
* build: add changeset
* Eslint ignore the hardhat folder
* Update README.md
* Beginning to add working examples
* hardhart and waffle example tests
* document/check waffle
* test l1-l2 example
* add patch-package
* Update package.json
* build: ensure lint only staged files on commit
* refactor: do not run --fix on lint-staged
* refactor: *.{ts,js} for eslint regex
* l2geth: rollup client explicitly checks for >= 400 errors
* l2geth: sync service retries connection to remote server
* l2geth: test errors returning from remote
* chore: add changeset
* syncservice: nit
* feat[message-relayer]: add easy relay tool
* chore: add changeset
* upkeep[monorepo]: add changeset info to README
* merge conflict squash
* Daily sync up (#137)
* build: ensure lint only staged files on commit
* refactor: do not run --fix on lint-staged
* refactor: *.{ts,js} for eslint regex
* l2geth: rollup client explicitly checks for >= 400 errors
* l2geth: sync service retries connection to remote server
* l2geth: test errors returning from remote
* chore: add changeset
* syncservice: nit
* feat[message-relayer]: add easy relay tool
* chore: add changeset
* upkeep[monorepo]: add changeset info to README
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Kelvin Fichter <kelvin@optimism.io>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* build: set up eslint prettier correctly
* style: run yarn lint --fix at root
* build: add necessary packages to workspace root
* build: remove --format stylish
* build: set semvery ranges to match across packages
* build: set up prettierrc.js for monorepo
* refactor: rename Range to BlockRange
* build: set up correct working directories
* build: set up lint:fix to use eslint not prettier
* style: run lint:fix on all code
* build: remove prettier extension recommendation
* style: update configuration to include babel-eslint for .js linting
* build: set concurrency to 1 to prevent git add errors on lerna lint
* github actions: bump geth CI golang version
* fix(contracts): prevent L2->L1 calls to system contracts
* Update message relayer fast contracts (#139)
* prepare for wallet reorg
* Create yarn.lock
* fix hardhat bug
* merge conflict resolve
* daily sync up (#141)
* build: set up eslint prettier correctly
* style: run yarn lint --fix at root
* build: add necessary packages to workspace root
* build: remove --format stylish
* build: set semvery ranges to match across packages
* build: set up prettierrc.js for monorepo
* refactor: rename Range to BlockRange
* build: set up correct working directories
* build: set up lint:fix to use eslint not prettier
* style: run lint:fix on all code
* build: remove prettier extension recommendation
* style: update configuration to include babel-eslint for .js linting
* build: set concurrency to 1 to prevent git add errors on lerna lint
* fix(contracts): prevent L2->L1 calls to system contracts
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: ben <ben@pseudonym.party>
* Add Factory contract for creating standard ERC20 tokens
compliant with the standard bridge
* Disallow 0 address for l1 token when creating l2 standard token
* Fix linting issue
* Add deployment script for the L2 token factory
* Fix deploy script OVM_L2StandardTokenFactory constructor params
* Add changeset
* Cleanup deployment script for OVM_L2StandardTokenFactory
and fix a solidity linting error
* refactor(integration): Add clarity to the expectApprox function signature
* fix: skip codechecks for PRs from external repos
* DRAFT move react wallet and the contracts to more clear folders (#138)
* DRAFT move react wallet and the contracts to more clear folders
* merging the axios integration chagnes
* updated the message-relayer-fast contracts
* integrate message-relayer-fast into standard dockers
* Dockerize the message-relayer-fast
* update Readme.md
* remove duplicated contracts - just keep everything in /contracts
* add deploy for fast messenger
* message-relayer-fast testing
* Update serve.sh
* Delete yarn.lock
* Update constants.ts
* Create yarn.lock
* Update constants.ts
* Update function-manipulation.spec.ts
* increase the retries and other minor fixes
* Improved documentation
* fix omgx integration tests
* Update omgx-integration.yml
* integration test remove duplicated tests
* Fix units test configuration
* Update docker-compose-omgx-services.yml
* integration test setup fixes
* fix wallet integration test
* fix for crash on return
* integration tests for `message-relayer-fast`
* Update env.ts
* Autodeploy Token Bridges
* Update wallet contracts
* Update utils.ts
* improve omgx integration tests
* Add address manager address to GH actions for now
Co-authored-by: sahil kashetwar <>
Co-authored-by: Sahil k <sahil@enya.ai>
Co-authored-by: cby3149 <cby3149@outlook.com>
* merge conflicts
* GH actions regular changes
* husky
* Daily sync up (#144)
* build: set up eslint prettier correctly
* style: run yarn lint --fix at root
* build: add necessary packages to workspace root
* build: remove --format stylish
* build: set semvery ranges to match across packages
* build: set up prettierrc.js for monorepo
* refactor: rename Range to BlockRange
* build: set up correct working directories
* build: set up lint:fix to use eslint not prettier
* style: run lint:fix on all code
* build: remove prettier extension recommendation
* style: update configuration to include babel-eslint for .js linting
* build: set concurrency to 1 to prevent git add errors on lerna lint
* github actions: bump geth CI golang version
* fix(contracts): prevent L2->L1 calls to system contracts
* Add Factory contract for creating standard ERC20 tokens
compliant with the standard bridge
* Disallow 0 address for l1 token when creating l2 standard token
* Fix linting issue
* Add deployment script for the L2 token factory
* Fix deploy script OVM_L2StandardTokenFactory constructor params
* Add changeset
* Cleanup deployment script for OVM_L2StandardTokenFactory
and fix a solidity linting error
* refactor(integration): Add clarity to the expectApprox function signature
* fix: skip codechecks for PRs from external repos
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: ben <ben@pseudonym.party>
Co-authored-by: elenadimitrova <elena@arenabg.com>
Co-authored-by: Reggie Gomez <reggieag@gmail.com>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* docker: pin to alpine 3.13 for l2geth
A bug has appeared when older versions of Docker are used to build
alpine based images in alpine version 3.14. To prevent this problem
from happening to the users, this PR pins the version to 3.13.
The observed problem is that `make` cannot run any command and
the error message states `Operation not permitted.` Removing
`make` was one way to solve the problem but that would increase
the diff from upstream geth.
See these links for details:
https://github.com/alpinelinux/docker-alpine/issues/182
https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.14.0
* fix: update statement for skipping codechecks
* contracts: add set-l2-gasprice task
This task allows a user to update the L2 gas price using hardhat.
An example of doing so would be:
```bash
$ export CONTRACTS_DEPLOYER_KEY=0x..
$ CONTRACTS_RPC_URL=https://kovan.optimism.io npx hardhat set-l2-gasprice \
--l2-gas-price 1
```
This hardcodes the predeploy address of the `OVM_GasPriceOracle` smart
contract and the Owner must be used to do the updating, otherwise the
transaction will revert.
* removed unused functions from core utils
* [added] changeset
* next gen integration tests for the OMGX stack (#149)
* next gen integration tests for the OMGX stack
* finish first pass integration test outline
* move LP tests to the `message-relayer-fast`
* Update omgx-integration.yml
* add more tests to message-relayer-fast
* connect up the .env variables
* hard code URIs
* Update utils.ts
* Update omgx-integration.yml
* fix - should have been 8080
* Update omgx-integration.yml
* which address to use?
* Update omgx-integration.yml
* removing not needed code
* remove superfluous logging code
* Update utils.ts
* Update utils.ts
* additional comments and formatting improvements
* fix: use older changes on tests (#152)
* fix: use older structure
* correct messenger
* LP fees on the correct side
* correct messenger
* rearrange depl order
Co-authored-by: Souradeep Das <dsouradeep2@gmail.com>
* Update README_OMGX.md (#150)
Refactored some changes and added some comments I thought might be helpful for people.
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* tests: re-enable all tests (#155)
* re-enable all tests
* re-enable all tests
* Add solhint to contracts package
* Turn off compiler-version rule in solhint
* Add suggestions by @maurelian
https://github.com/ethereum-optimism/optimism/pull/1033#issuecomment-866146467
* Change solhint output formatting to table
* Disable contract-name-camelcase rule in solhint
* Fix max-line-length linting issues in contracts
* Fix quotes linting issues in contracts
* Remove private-vars-leading-underscore rule in solhint
* Add contracts linting to github action
* Fix for hardhat account balance parsing
* Disable generating the bytecodeHash in hardhat contract artifacts
* Review fixes
* Fix review notes
* Fix smockit for a change in hardhat ^2.4.0
which changes the way it parses errors from returndata
Fix provided by @smartcontracts
* dtl: configurable gas price backend
Adds a new config option `--l1-gas-price-backend` or
`DATA_TRANSPORT_LAYER_L1_GAS_PRICE_BACKEND` that can be set to `l1` or
`l2`. This impacts the behavior of the HTTP endpoint `GET /eth/gasprice`
by changing what is queried to return the L1 gas price. The L1 gas price
is required to compute the L2 fee since the L2 fee consists of
`L1 gas price * L1 gas used + L1 gas price * L2 gas limit`. If the L1
gas price differs too much between different L2 providers, then users
using `eth_estimateGas` may submit transactions with too low of a fee
and be unable to submit transactions to the sequencer.
By configuring the DTL to use L2 as the L1 gas price backend, it will
call the Sequencer's RPC endpoint `rollup_gasPrices` which returns the
L1 and L2 gas prices from the point of view of the sequencer. The L2 gas
price exists in the state, so that will always be the same between the
sequencer and any replicas. The L1 gas price does not live on chain, so
querying for it from the sequencer directly will ensure that users send
transactions with a fee that is large enough.
Also adds eth/gasprice info to README.
* Remove bl wl service (#154)
* replace `bl-wl` with direct calls the `omgx_deployer`
* Update docker-compose-omgx-services.yml
* Update up_local.sh
* Add CORS headers to http servers
* updated frontend to use the two new HTTP servers for the addresses
* update webwallet to work with both local and rinkeby
* Add missing .env variables to GH actions
* re-enable docker tages
* re-enable wallet transaction history
* Update up_local.sh
* Update up_local.sh
* Add flag to omgx_deployer to only serve addresses w/o deploying new contracts
* Update docker-compose-omgx-services.yml
* Add back tagging system and improved reliability of GH actions
* removed commented out service
* add rinkeby token addresses (#161)
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* fix: lint deploy-l2 folder in contracts
* Add AWS integration (#159)
* Add AWS integration
* Remove artifacts
* updated ops_omgx/README.md and added .github/workflows/deploy2aws-integration.yml and .github/workflows/push2aws.yml
* add automated provision and deletion of an ec2 instance for running the integration tests
Co-authored-by: Petar Denev <pdenev@gmail.com>
* fix: update CI to avoid running out of memory
* Version Packages
* ci: release latest image tags on release
* feat: update README to include info about rebasing
* Add op_exporter for sequencer metrics and health endoint
Added metric for sequencer health
Added Dockerfile for op_exporter;
Fixed Dockerfile path
* merge conflicts
* re-comment out the usual GH actions
* feat[integration-tests]: make tests work for prod networks
* chore: add changeset
* Increase client_body_buffer_size for rpc-proxy
Added client_max_body_size to rpc-proxy config
* l2geth: use `hexutil.Big` to prevent overflows
The `RollupClient` decodes the JSON from the DTL as a uint64,
this updates it to be a `big.Int`
Includes a test for the value field that ensures it does not overflow
* ci(contracts): only run codecov if contracts package is modified
In order to skip running the CodeCov job when it isn't relevant, a new job was added to the ts-packges workflow. For a PR, this job identifies all the files modified between the base branch and the tip of the PR branch, and writes to a variable which can be used to decide if subsequent jobs should run.
Github Actions provides an easy method for achieving this at the level of a workflow, but not for specific jobs within a workflow.
* Version Packages
* chore(ci): Skip codecov on push events
* feat: add workflow for running SNX test suite
* go: implement gasprices package
The `gasprices` package implements the logic that updates
L2 gasprices on the Optimistic Ethereum Network.
Co-authored-by: Karl Floersch <karl@karlfloersch.com>
* gas-oracle: implement and test
This commit adds the `gas-oracle` which is an offchain entity
that sends transactions to L2 to update the gas price. It must
be configured with a private key as the `OVM_GasPriceOracle`
is owned.
The `gas-oracle` is added to the changesets setup.
Tests are included as well as CI. Dockerizing will happen
in a follow up PR.
* gas-oracle: ci + docker build/publish
Adds a dockerfile for the `gas-oracle` as well as adding it as
a service in the `docker-compose.yaml`. It is not enabled by
default due to memory issues in CI already happening occasionally
where the integration tests are oom killed.
The `gas-oracle` is configured with a key that owns the
`OVM_GasPriceOracle`.
This PR adds the `gas-oracle` to the Github Actions
workflow that is responsible for publishing the docker images.
* Add replica (#169)
* fix: update erc20 deposits (#166)
* fix: update erc20 deposits
* fix: auto default token
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* resolve merge conflicts
* Update docker-compose.yml
* Update docker-compose.yml
* [pull] develop from ethereum-optimism:develop (#164)
* contracts: add set-l2-gasprice task
This task allows a user to update the L2 gas price using hardhat.
An example of doing so would be:
```bash
$ export CONTRACTS_DEPLOYER_KEY=0x..
$ CONTRACTS_RPC_URL=https://kovan.optimism.io npx hardhat set-l2-gasprice \
--l2-gas-price 1
```
This hardcodes the predeploy address of the `OVM_GasPriceOracle` smart
contract and the Owner must be used to do the updating, otherwise the
transaction will revert.
* Add op_exporter for sequencer metrics and health endoint
Added metric for sequencer health
Added Dockerfile for op_exporter;
Fixed Dockerfile path
* feat[integration-tests]: make tests work for prod networks
* chore: add changeset
* Increase client_body_buffer_size for rpc-proxy
Added client_max_body_size to rpc-proxy config
* l2geth: use `hexutil.Big` to prevent overflows
The `RollupClient` decodes the JSON from the DTL as a uint64,
this updates it to be a `big.Int`
Includes a test for the value field that ensures it does not overflow
* ci(contracts): only run codecov if contracts package is modified
In order to skip running the CodeCov job when it isn't relevant, a new job was added to the ts-packges workflow. For a PR, this job identifies all the files modified between the base branch and the tip of the PR branch, and writes to a variable which can be used to decide if subsequent jobs should run.
Github Actions provides an easy method for achieving this at the level of a workflow, but not for specific jobs within a workflow.
* Version Packages
* chore(ci): Skip codecov on push events
* feat: add workflow for running SNX test suite
* go: implement gasprices package
The `gasprices` package implements the logic that updates
L2 gasprices on the Optimistic Ethereum Network.
Co-authored-by: Karl Floersch <karl@karlfloersch.com>
* gas-oracle: implement and test
This commit adds the `gas-oracle` which is an offchain entity
that sends transactions to L2 to update the gas price. It must
be configured with a private key as the `OVM_GasPriceOracle`
is owned.
The `gas-oracle` is added to the changesets setup.
Tests are included as well as CI. Dockerizing will happen
in a follow up PR.
* gas-oracle: ci + docker build/publish
Adds a dockerfile for the `gas-oracle` as well as adding it as
a service in the `docker-compose.yaml`. It is not enabled by
default due to memory issues in CI already happening occasionally
where the integration tests are oom killed.
The `gas-oracle` is configured with a key that owns the
`OVM_GasPriceOracle`.
This PR adds the `gas-oracle` to the Github Actions
workflow that is responsible for publishing the docker images.
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Ben Wilson <bwilson@optimism.io>
Co-authored-by: Kelvin Fichter <kelvin@optimism.io>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: Ben Wilson <82120899+optimisticben@users.noreply.github.com>
Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Karl Floersch <karl@karlfloersch.com>
* Update docker-compose.yml
* adding l1-l2 test ecs scheduled task that does verify communication between L1 and L2 and L2 to L1 (#167)
Co-…
* fix[relayer]: update exported files list in package.json (#1138)
* fix[relayer]: update exported files
* chore: add changeset
* fix: import path (#1141)
* fix: correct import path for altered contract path
* chore: add changeset
* refactor: improve logging for batch submission timeout scenarios (#1120)
* Fixed CrossDomainMessenger name (#96)
* Add highest L1 and L2 block number Gauge metrics to DTL (#1125)
* build: add prom-client to data-transport-layer
* refactor: thread metrics more carefully through data-transport-layer; add two new metrics
* style: fix some style issues
* refactor: make metrics mandatory
* refactor: move metrics register code to top of file
* style: apply linting
* refactor: move promethesus initialization after express
* refactor: move promBundle call up, provide registry
* build: add changeset
* Improve Watcher ability to find transactions (#1107)
* remove listeners and use loop to find tx receipt
* add yarn ready
* moved filters inside loop
* [added] changeset
* Add minimal vscode settings and extensions (#1109)
* chore: add minimal vscode settings and extensions
* chore: Add "files.trimTrailingWhitespace" to vscode native config
* chore: replace vscode prettier plugin with eslint plugin
* fix[contracts]: remove part of MultiMessageRelayer deployment (#1144)
* fix[contracts]: remove part of MultiMessageRelayer deployment
* chore: add changeset
* Define L1 Starting block via OwnershipTransferred rather than AddressSet (#1129)
* Update service.ts
* Create thirty-years-look.md
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* Easy fix for broken watchers (#1121)
* Easy fix for broken watchers
* Ran yarn changeset
Co-authored-by: Liam Horne <liam@lihorne.com>
* feat: go packages (#1111)
* go: add utils module
* readme: update
* Version Packages (#1094)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* build: add husky pre-commit hook to lint (#1146)
* feat[contracts]: add mainnet deploy script (#1147)
* Add mainnet deploy script
* Update mainnet.sh
* Address PR review feedback
* feat: mainnet contract deployment 0.4.0 (#1148)
* feat: mainnet contract deployment 0.4.0
* feat: deployments readme
* chore: add changeset
* contracts: remove dead contract
* contracts: remove dead config
* tests: fix to not test for old contracts
* feat: `rollup gasPrices` RPC endpoint (#1136)
* feature: l2geth endpoint
* chore: add changeset
Co-authored-by: Liam Horne <liam@lihorne.com>
* Adds l2 standard bridge to contracts markdown file (#1151)
* Version Packages (#1150)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Add more info about our branching strategy to the README (#1114)
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Remove references to OVM_L1ETHGateway in deployments and readme (#1119)
* Keep the user logged in after changing chain (#99)
* Keep the user logged in after changing chain
* Update Nft.js
* Detect if user is in the wrong chain
Co-authored-by: cby3149 <cby3149@outlook.com>
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* Merge conflics resolve (#110)
* wip
* gethl2
* wip
* batch submitter
* core utils
* DTL
* message relayer
* contracts
* wip
* Update service.ts
* DTL
* messaage-relayer
* Update yarn.lock
* final 5 files
* [pull] develop from ethereum-optimism:develop (#91)
* chore: reduce hardhat timeout to 20 seconds (#968)
* fix: force LF line endings for scripts to avoid docker problems on Windows (#974)
* fix: use correct line endings for windows
* chore: add changeset
* refactor[contracts]: Turn ExecutionManagerWrapper into a predeployed contract (#808)
* wip: Started working on L2 contract testing revamp
* test: clean tests for ProxyEOA
* style: clean imports for ProxyEOA tests
* test: port tests for ECDSAContractAccount
* fix tests and add wrapper to dump
* fix: add em wrapper to l2 deploy
* ffix: add comments to wrapper contract
* fix: add more comments
* fix: add smock comment for unbind
* Update packages/smock/src/smockit/binding.ts
* maintenance[contracts]: use dashes in chain container names (#819)
* maintenance: use dashes in chain container names
* chore: add changeset
* feat[contracts]: temporarily disable EOA upgrades (#857)
* feat[contracts]: disable eoa upgrades temporarily
* chore: add changeset
* Update OVM_ProxyEOA.sol
* fix: turn upgrade into a noop
* lint: fix
* feat[contracts]: Update Lib_AddressManager.AddressSet event to speed up data transport layer (#820)
* feat: update and improve AddressSet event
* chore: add changeset
* Update Lib_AddressManager.sol
* Reduce gas costs of deposits (#667)
* Remove messageNonce from BaseCrossDomainMessenger and use CTC queue lenght instead
Remove Abs_BaseCrossDomainMessenger and restore dedicated nonce generation in OVM_L2CrossDomainMessenger
Fix typo
* Remove sentMessages mapping from L1CrossDomainMessenger storage
and use the nonce to check for existence of replayed transaction
* Refactor out common library function for getting cross domain calldata
* Post rebase fixes
* Use the queueIndex to check the transaction was enqueued
* Fix tests for L1CrossDomainMessenger.replayMessage
Also make that test work with an actual CanonicalTransactionChain implementation rather than a smock
* Lint fixes
* Optimise the resolve calls into the AddressManager lib
* Rename the nonce parameter to be clear
* Update test name
Co-authored-by: ben-chain <ben@pseudonym.party>
* Rename getXDomainCalldata to encodeXDomainCalldata to match the new Lib_CrossDomainUtils
Co-authored-by: ben-chain <ben@pseudonym.party>
* optimism: bump gaslimit to 10 million #870 (#871)
* optimism: bump gaslimit to 10million
* chore: add changeset
* optimism: bump max gaslimit to 10 mil
* chore: add changeset
* chore: remove unnecessary changeset
* chore: remove unnecessary changeset
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* fix: use correct contract name in tests (#921)
* fix: disable upgradability from ECDSA Account (#885)
* l2geth: remove `SignatureHashType` (#752)
* l2geth: remove tx type
* l2geth: no longer parse type in rollup client
* chore: add changeset
* chore: remove extra sighash params
* fix: do not check txtype in integration tests
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* feat[contracts]: introduce OVM_GasPriceOracle (#912)
* feat[contracts]: congestion price oracle
* chore: add changeset
* contracts: gas price oracle (#917)
* contracts: gas price oracle
* tests: update
* fees: fix tests
* contracts: simplify gas price oracle
* lint: fix
* test: execution price is at the 1st storage slot
* chore: rename predeploy to GasPriceOracle
* chore: rename gas price oracle test name
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* fix: configure max gas limit to 11m (#928)
Uniswap V3 contracts require that, otherwise they throw call exceptions at deployment
* Consolidate Predeploy Addresses (#931)
* added library for predeploy addresses
* refactor tests and other packages to use exported predeploys
* revert library usage in OVM_ECDSAContractAccount
* lint
* added newline
* fixed address typos
Co-authored-by: rajivpo <rajivpatel-oconnor@Rajivs-MacBook-Pro-2.local>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* chore: remove yarn-error.log and gitignore it (#956)
* feat[contracts]: Replace Lib_RingBuffer with a much simpler Lib_Buffer (#821)
* feat[contracts]: replace Lib_RingBuffer with a simpler Lib_Buffer
* chore: changeset
* test: add tests for Lib_Buffer
* lint: fix
* test: add extra coverage for Lib_Buffer
* Update packages/contracts/contracts/optimistic-ethereum/libraries/utils/Lib_Buffer.sol
Co-authored-by: ben-chain <ben@pseudonym.party>
* add some extra comments
Co-authored-by: ben-chain <ben@pseudonym.party>
* fix(contracts): import predeploys (#982)
* fix(contracts): import predeploys
* fix: lint
* feat: add hardhat deploy instructions to readme (#965)
* feat: add deployment instructions to readme
* Add changeset
* fix style
* Update README.md
* feat: fees v2 (#976)
* l2 geth: new fee logic
* l2 geth: migrate to fees package
* core-utils: new fee scheme
* chore: add changeset
* l2geth: delete dead code
* integration-tests: fix typo
* integration-tests: fixes
* fees: use fee scalar
* lint: fix
* rollup: correct gas payment comparison
* fix(integration-tests): do not hardcode gas price
* core-utils: update with new scheme
* l2geth: refactor rollup oracle
* l2geth: clean up DoEstimateGas
* l2geth: implement latest scheme
* tests: fix up
* lint: fix
* l2geth: better sycn service test
* optimism: rename to TxGasLimit
* fee: fix docstring
* tests: fix
* variables: rename
* l2geth: prevent users from sending txs with too high of a fee
* integration-tests: fix import
* integration-tests: fix type
* integration-tests: fix gas limits
* lint: fix
* l2geth: log error
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* Add static analysis action (#848)
* Add static analysis github action
setup python and install slither
* Add nvmrc file for setting node to v14.17
* Update slither command run to link missing contract packages from monorepo root
* Add steps for installing dependencies
* Add yarn build step to github action
* Enable colour in github action for static analysis
* Disable certain detectors
* Ensure slither does not fail build
* Add instructions on running static analysis to monorepo readme
* build(deps): bump ws from 7.4.4 to 7.4.6 in /ops/docker/hardhat (#987)
Bumps [ws](https://github.com/websockets/ws) from 7.4.4 to 7.4.6.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.4.4...7.4.6)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix[l2geth]: fix accidental merge conflict (#994)
* feat[message-relayer]: relay tx generator (#952)
* feat[message-relayer]: relay tx generator
* whoops, I burned our infura key
* fix minor bug
* add comments
* add more comments and clean stuff up
* add empty test descriptions
* add tests
* move smock to dev deps
* chore: add changeset
* minor cleanup to merkle tree proof function
* use bignumber math to avoid nested await
* use a better interface
* minor fixes and simplifications
* backwards compatible dtl syncing (#986)
* kovan: fix attempt
* kovan: db fix
* kovan: types are strings from db
* l2geth: parse things as strings
* chore: add changeset
* dtl: also stringify the range query
* geth: dereference
* geth: assign err
* dtl: handle null
* dtl: fix unit tests
* fix[smock]: fix broken call assertions for overloaded functions (#996)
* fix[smock]: fix broken call assertions for overloaded functions
* chore: add changeset
* minor correction and add a test
* add a test for non-overloaded functions
* fix[message-relayer]: fix failing test because of merge with develop (#1000)
* fix[message-relayer]: remove spreadsheet mode (#998)
* fix[message-relayer]: remove spreadsheet mode
* chore: add changeset
* Lower local rollup timestamp refresh (#985)
* update rollup timestamp refresh
* increase refresh time to 5s
* feat: fees v3 (#999)
* core-utils: fee impl v3
* l2geth: fees v3 impl
* integration-tests: update for fees v3
* chore: add changeset
* fix: typo
* integration-tests: fix and generalize
* fees: update fee scalar
* l2geth: check gas in the mempool behind usingovm
* tests: fix up
* l2geth: remove dead var
* truffle: fix config
* fix: remove dead coders (#1001)
* chore: delete dead coders
* chore: add changeset
* dtl: remove dead imports
* core-utils: delete dead tests
* batch-submitter: remove txtype
* chore: add changeset
* docs[message-relayer]: add a README and improve the interface for generating proofs (#1002)
* docs[message-relayer]: add basic docs and clean up an interface
* chore: add changeset
* dtl: log error stack for failed http request (#995)
* dtl: log error stack for failed http request
* chore: add changeset
* Add rpc-proxy service for whitelisting JSON RPC methods to the sequencer. (#945)
* Add healthcheck endpoint for rpc-proxy
Added ethereum-nginx-proxy source
updated README and docker image build
* Check ETH_CALLS_ALLOWED is set, clean up comments, remove old Dockerfile
* Pass additional information across domains via token gateways (#824)
* feat(contracts): add from and data args to L1ERC20Gateway
fix(integration): add gasLimit to fundUser
refactor(contracts): add data to gateway events
add changeset
fix(integration): provide data in outboundTransfer
refactor(contracts): reset Abs_L2TokenGateway to Abs_L2DepositedToken
refactor(contracts): fix mismatched names
* feat[contracts]: add custom gas arg to gateway
fix(contracts): take max of user vs. default gas
* fix(integrations): update ovm-eth function call
* fix(integration): remove unecessary explicit gasLimit
* test(contracts): 32kb transfer, 9MM gas
* fix(contracts): fixup comment, bytes arg last
* fix(integration): args order in integrations
* fix(contracts): remove unused L2 gas arg
* fix(contracts): limit data that can be passed to L2
* fix(integration): better tests for data length
* test: check for error on too large data
* Experimental: specify gaslimit in before hook
* fix(integration): add l2 gas argument
* fix: increase gas on fundUser
* fix(contracts): remove duplicate max size limit
* fix(integration): fine tune gas amounts
* lint
* fix: large data test
* fix(integration): set gas closer to real cost
* fix(contracts): remove unused bridge variables
These variables were the default gas amounts for cross domain messages
* fix(contracts): Reorder args
Place dynamic length args last
* fix(integration): update estimateGas values
* fix(integration): reset eth withdraw estimate to 21000
* fix(integration): update expected gas amount
* fix(integration): reduce gas amount for ETH withdraw
* More consistent style for Constant values (#991)
* chore(contracts): make container addresses be constants
chore(contracts): consistent style for constant vars
* chore(contracts): add internal on predeploy constants
* feat: deployment config for fee oracle contract (#936)
* feat[contracts]: add GasPriceOracle w/o predeploy
Based on #912
* feat[contracts]: congestion price oracle
* chore: add changeset
* contracts: gas price oracle (#917)
* contracts: gas price oracle
* tests: update
* fees: fix tests
* contracts: simplify gas price oracle
* lint: fix
* test: execution price is at the 1st storage slot
* chore: rename predeploy to GasPriceOracle
* chore: rename gas price oracle test name
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* Add an L2 deploy script for gas oracle contract
* Add a kovan deployment artifact
* Add deployment to readme
* Add extra validation & initial execution price
* Update README.md
* Fix execution price logic
* Perform new deployment with final contract
* contracts: better require in ovm gas price oracle
* Deploy L2GasPriceOracle
* Update contract to use new fee logic & rename to gas
* Deploy updated contract
* Fix lint
* gas price oracle: do not restrict gas price
* gas price oracle: new deployment
* tests: delete dead test
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* ops: expose debug namespace (#1007)
* develop merge fixes
* refactor[l2geth]: queue origin type (#975)
* refactor: queueOrigin type
* Convert queueOrigin to uint8 in encode
* Add changeset
* Regenerate json marshall
* style: combine lines
* Add Stringer for QueueOrigin
* Turn QueueOrigin into uint8
* l2geth: gen tx meta fix
* l2geth: gen tx meta fix
* lint
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
* fix(sync-service): prevent underflows (#1015)
* fix(sync-service): prevent underflows
* chore: add changeset
* chore: remove dead confirmation depth
* chore: remove eth1conf depth from rollup config
* test: remove duplicate value in array (#1014)
* ci: tag docker image for canary with abbreviated GITHUB_SHA (#1006)
* ci: tag docker image for canary with abbreviated GITHUB_SHA
* ci: update from 6 bytes to 8 bytes of abbreviation
* refactor: improve logging for transactions being submitted to chain with gasPrice (#1016)
* refactor: improve logging for transactions being submitted to chain with gasPrice
* lint: apply lint autofixes
* dtl: remove stringify from db logic + more overflow protection (#1010)
* dtl: remove stringify from db logic
* l2geth: overflow protection
* dtl: overflow protection
* chore: add changeset
* ci: upload logs for failed integration tests (#1020)
* fix(dtl): improve slow blocking JSON parsing that occurs during l2 sync (#1019)
The use of eth_getBlockRange returns a large response which is very
slow to parse in ethersjs, and can block the event loop for upwards
of multiple seconds.
When this happens, incoming http requests will likely timeout and fail.
Instead, we will parse the incoming http stream directly with the bfj
package, which yields the event loop periodically so that we don't
fail to serve requests.
* fix: lint errors in dtl (#1025)
* fix[dtl]: fix dtl bug breaking verifiers (#1011)
* fix[dtl]: fix dtl bug breaking verifiers
* tweaks so tests pass
* chore: add changeset
* fix: deterministic blockhashes (#1032)
* config: set etherbase
* l2geth: add deterministic clique key
* l2geth: default value
* chore: add changeset
* test: add sync test for deterministic blockhash
Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
* Version Packages (#978)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* ci: add sync test's own workflow (#1031)
* fix(dtl): incorrect parsing of eth_getBlockRange result (#1037)
* Version Packages (#1045)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix: no gas refund (#1043)
* l2geth: remove the gas refund
* chore: add changeset
* refactor[contracts]: remove one-off GasPriceOracle deployment file (#1046)
* refactor[contracts]: remove one-off gpo deployment
* chore: add changeset
* feat[contracts]: introduce new L1ChugSplashProxy contract (#1009)
* feat[contracts]: add L1ChugSplashProxy
* improve comments slightly
* start adding tests
* add more tests
* make the system pausable
* added another test
* add some extra comments
* Update packages/contracts/test/contracts/chugsplash/L1ChugSplashProxy.spec.ts
Co-authored-by: Maurelian <maurelian@protonmail.ch>
* Update packages/contracts/test/contracts/chugsplash/L1ChugSplashProxy.spec.ts
Co-authored-by: Maurelian <maurelian@protonmail.ch>
* chore: add changeset
* address review feedback
Co-authored-by: Maurelian <maurelian@protonmail.ch>
* feat[contracts]: add sequencer fee wallet (#1029)
* wip: first draft of the fee wallet
* add fee wallet to dump
* rename to sequencer vault
* add L1 fee wallet to geth config
* add unit tests
* fix geth linting error
* add a basic integration test
* fix broken integration test
* add test for correct storage slot
* add integration test for fee withdrawal
* fix typo in integration tests
* fix a bug bin integration tests
* Update OVM_SequencerFeeVault.sol
* fix bug in contract tests
* chore: add changeset
* fix bug in contract tests
* build(deps): bump glob-parent from 5.1.1 to 5.1.2 (#1036)
Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/gulpjs/glob-parent/releases)
- [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2)
---
updated-dependencies:
- dependency-name: glob-parent
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: Liam Horne <liam@lihorne.com>
* fix: predeploy gasprice oracle (#1039)
* l2geth: delete extra config options
* l2geth: stop using extra config options
* l2geth: more stop using extra config options
* chore: add changeset
* l2geth: add new config for gpo owner
* chore: add changeset
* l2geth: fix tests
* tests: fix build
* l2geth: optimize loops (#1027)
* l2geth: optimize loops
* l2geth: stop ticker when done
* l2geth: don't wait for first tick
* chore: add changeset
* Enable custom tagging of release docker image (#1048)
* ci: enable custom tagging of release docker image
* ci: refactor to add prerelease prefix for secuirty
* doc: typo
* ci: fix indentation issue of canary workflow
* ci: fix typo with GITHUB_SHA
* fix: typo in USE_HARDHAT config (#1023)
* fix: abi encoded tx (#1049)
* contracts: don't double rlp decode
* chore: add changeset
* lint: fix
* deps: update
* linting: cleanup
* feat: contracts: use selector
* fix: contracts: use typescript
* contracts: use interface
* l2geth: bump to go 1.15 (#1058)
* l2geth: bump to go 1.15
* chore: add changeset
* Change monotonicity band-aid code to log warnings not errors (#1060)
* refactor: change monotonicity band-aid code to log warnings not errors
* build: add changeset
* feat(contracts, l2geth): native ETH value support for ovmCALL (#1038)
* feat(contracts): add ovmCALL-types with native value
* add ovmCALLVALUE context
* add ovmBALANCE
* test success and revert cases
* test empty contract case
* chore: lint
* test(integration-tests): ovmCALL-types with value (compiler and wrapper)
* fix ovmDELEGATECALL type, update tests
* add ovmSELFBALANCE
* fix ovmDELEGATECALL jumping to CALL
* chore: lint
* fix(contracts): account for intrinsic gas of OVM_ETH sends
* fix(contracts): merge conflict bug
* fix(contracts): update gas benchmark
* feat(contracts, integration-tests): use new value-compatible compiler
* feat(contracts,l2geth): support value calls in OVM_ECDSAContractAccount
* fix(contracts): ovmDELEGATECALL does not change message context
* feat(contracts): sending value between EOAs
* test(integration-tests): ovmDELEGATECALL preserves ovmCALLVALUE
* test(integration-tests): assert ovmSELFBALANCEs correct
* test(integration-tests): intrinsic gas for eth value calls
* test(integration-tests): update gas values
* chore(contracts): lint
* feat(contracts, l2geth): eth_calls with nonzero value
* chore: minor fixups and comments based on PR feedback
* test(integration-tests): add requested tests from PR reviews
* test(integration-tests): ovmSELFBALANCE is preserved in ovmDELEGATECALLs
* fix(contracts): fix bug where ovmDELEGATECALL could fail if balance was lower than the ovmCALLVALUE
* chore: add changeset
* fix(contracts): update intrinsic gas for worst-case value sends
* chore: address final PR nits/improvements
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
* Add erc1271 support to contract account (#1052)
* add ERC1271 support, failing unit tests
* add integration test for isValidSignature
* remove .only
* lint
* add changeset
* clean up 1271 tests and lint
* switch back to using waffle wallet
* lint
* fix import
* feat[contracts]: slightly better account funding for hardhat accounts (rebased) (#1065)
* feat[contracts]: better account funding for hardhat accounts
* add a sleep to avoid any potential problems
* chore: add changeset
* fix: bug with gas estimation in funding step
* fix: limit to 20 accounts max
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
* Ensure Sentry is correctly set up for DTL and MR (#1054)
* refactor: add logger and metrics to options for BaseService
* refactor: thread sentryOptions through from message-relayer into BaseService
* refactor: ensure DTL Logger is using Sentry for errors
* style: lint base-service.ts
* refactor: init Sentry on batch-submitter too
* refactor: init Sentry on message-relayer too
* refactor: pass in basic logger to MessageRelayerService
* build: provide changeset
* fix: correct usage of use-sentry boolean config
* refactor: appropriately type loggingOptions
* build: add @sentry/node
* build: add @sentry/node to message-relayer and fix linting issue
* Add more logging information to monotonicity violation logs (#1066)
* refactor: log idx of monotonicity violation from batch
* build: add changeset
* temporarily disable hardhat example tests (#1071)
* fix: monotonicity auto healer (#1070)
* fix: monotonicity auto healer
* add: changeset
* Version Packages (#1053)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Standard token bridge (#988)
* Remove abstract token gateway and deposited token implementations
* Further simplification of bridge contracts
* Standart token bridge and L2 token implementation
* Fix spacing
* Implement case when a bad deposit happens to a nonexistent L1<>L2 token pair
* Use SafeMath in common token bridge accounting
* test(contracts): fix finalizeWithdrawal test
* fix(contracts): use SafeERC20 on token deposits
* Rename OVM_L1ERC20Gateway to OVM_L1ERC20Bridge contract
* Rename iOVM_L1ERC20Gateway to iOVM_L1ERC20Bridge contract
* Cleanup gateway to bridge rename
* Better name for the mapping holding l1->l2 deposit amounts
* Use OZ SafeMath
* Rename local variables in OVM_L2DepositedERC20 from gateway to bridge
* Merge ETH and ERC20 bridge contracts
* Rename OVM_L1ERC20Bridge to OVM_L1StandardBridge and fix tests from merging the ETH and ERC20 bridges
* Better name for iAbs_BaseCrossDomainMessenger -> iOVM_CrossDomainMessenger
* Correct the bounce back of deposit sender and recipient properties
* Remove obsoleted event from OVM_L2DepositedERC20
* chore(contracts): change references from ETHGateway to Bridge
* Fix a linting error
* fix(contracts): add bridge to deployer
* Split off ERC20Bridge interface for the purposes
of being reused in custom ERC20 bridges
* Split off interface natspec definitions
* Draft version of OVM_L2DepositedERC20 splitted into a standard L2 erc20: L2StandardERC20 and
a common L2 bridge: OVM_L2StandardBridge
* style(contracts): define L1_ETH_ADDRESS as constant
* test(integration): update interface to use depositETH
* test(contracts): fix OVM_L1StandardBridge tests
* test(contracts): fix L2 Standard Bridge tests
* test(contracts): lint and remove an obsolete test case
* Fix modifier check to comply with the L2 bridge distinction from L2 token
* Simplify address <> interface casting in bridges
* Ensure natspec comments are correct
also add l1 and l2 token params to WithdrawalInitiated event for consistency
* Fix issues in L1 and L2 bridges to ensure
cross domain messages are sent only between the two bridges
also adjusted withdrawals to send to either finalizeETHWithdrawal or finalizeERC20Withdrawal
depending on which asset is being withdrawn
* Remove AddressManager from the L1 standard bridge
* REVERT ME: instruments cross domain enabled
* fix(contracts): remove Address Manager from L1 Bridge
* feat(contracts): make L2 Standard Bridge a predeploy
* WIP: update deployments for standard bridges
* WIP: update deployments for standard bridges
* l2geth: TEMP log contract calls
* chore(l2geth): replace eth gateway with standard bridge
* fix(contracts): make contract-deployment/config work
* WIP fix(integration): update integration tests for bridge
* Remove ovmEth from L1 Standard bridge as obsoleted
* Separate ERC20 standard implementation from L2 bridge
* Formatting fixes
* chore(l2geth): replace eth gateway with standard bridge
* Revert "REVERT ME: instruments cross domain enabled"
This reverts commit d5bb8f8f67974d0a3e65fc000f08858328a4bbbc.
* fix: lint ts
* Implement EIP-165 in the Standard L2 ERC20 token
Also switch that to be based off the OpenZeppelin default implementation plus mint and burn
Additionally remove the obsoleted iOVM_ERC20
* fix(contracts): add deployment check on bridge proxy
fix(contracts): whitespace
fix(contracts): init bridge implementation with non-zero address
* Remove dependency on Ownable contract for the StandardERC20 token on L2
* fix(contracts): update deployment scripts
* fix: lint
* remove debugging code
* fix: correct rpc get balance slot
* restore l2 cross domain messenger
* fix: lint
* Add a test for a non compliant token deposit
* Only allow EOAs to deposit ETH and ERC20
* Add comments and tests for ERC165 implementation
* Decide against using explicit ETH MOCK address as we're not using it for checks
* Fix linting issues
* Add onlyEOAContract restriction to standard bridge withdrawals
* Update codehashes in L2 Standard bridge
* fix(ops): remove unintentionally added file
* feat(contracts): add expectApproxGasCost function
* fix(integration): proper arrayify input on fundUser
* fix(integration): proper gas value checks
* Revert "Add onlyEOAContract restriction to standard bridge withdrawals"
This reverts commit 2713c06ceb2609e4f13718e1034a4d76210d9758.
* fix(contracts): removed unused expectApproxGasCost for now
* fix(contracts): update OVM_SequencerFeeVault for bridge changes
* lint
* Update deployment for L1 Bridge w/ ChugSplash
* Revert "l2geth: TEMP log contract calls"
This reverts commit 21d42259278449f221bf34605162229b3d9d4fa9.
* Apply suggestions from code review
* Apply suggestions from code review
* fix(contracts): deploy with chugsplash proxy
* fix(contracts): add working bridge and chugsplash proxy deployment
* fix(contracts,integration): 500k gas for depositETH
* comment(contracts): describe failed deposit handling on l2
* Apply suggestions from code review
Co-authored-by: ben-chain <ben@pseudonym.party>
* docs: add changeset
* fix(integration): set working l2 gas amount on funduser
* test(integration): add receive() test
* fix(contracts): reset receive to 1.2MM l2 gas
* test(examples): skip l1-l2 example test for now
* fix(contracts): drop hardcoded gas to 500k in receive()
* fix(contracts): use abi.encodeWithSignature
* fix(contracts): resolve merge conflicts
* feat(integration): add expectApprox for flexible gas testing
* fix(integration): fix failing gas tests
* fix: incorrect l2 gas for deposit
* Update utils.ts
* fix(workflow): disable l1-l2 example until npm imports are fixed
* chore: final round of PR review nits and tests
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: ben-chain <ben@pseudonym.party>
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
* fix: comment out codeowners (#1073)
* fix: use predeploy constant lib for em wrapper (#1075)
* fix: use predeploy constant lib for em wrapper
* chore: add changeset
* fix[l2geth]: off-by-one sometimes breaking replica sync (#1082)
* fix[l2geth]: off-by-one sometimes breaking replica sync
* chore: add changeset
* fix(l2geth): Log 'end of OVM execution' correctly (#1080)
* refactor[contracts]: move account contracts to predeploy folder (#1085)
* refactor[contracts]: move account contracts to predeploy folder
* chore: add changeset
* maintenance[contracts]: rename precompiles test folder to predeploys (#1086)
* fix[bs]: disambiguate generic submission errors (#1051)
* fix[bs]: disambiguate generic submission errors
* add cases for errors
* separate out errors from transaction reverts with reasons
* remove extraneous errors
* WETH deposit and withdraw on OVM_ETH (#1083)
* feat(contracts): add no-op WETH9 functionality to OVM_ETH
* working WETH deposit and withdraw + tests
* add changeset
* address PR feedback
* update WETH9 contract implementation
* add fallback to WETH9
* add fallback and revert withdraw test
* update nit comment
Co-authored-by: ben <ben@pseudonym.party>
* Also move the accounts interface to iOVM/predeploys (#1087)
* refactor[contracts]: move account interface to predeploy folder
* chore: add changeset
* Version Packages (#1089)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix: use -z flag for var unset in canary
* Use Eslint instead of Tslint (#1005)
* removed tslint
* forgot to commit files
* made .eslintrc.js consistent for all subdirs and other cleanup
* [removed] includes and files keys from tsconfig.json
* removed file level linting exceptions and added details to line level
* added changeset
* fixed newly introduced linting errors from rebase
* enable json import for batch submitter
* removed ecdsa-coder
* maybe a tsconfig issue?
* Update deploy.ts
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: platocrat <37757724+platocrat@users.noreply.github.com>
* metrics[batch-submitter]: add new batch submitter metrics (#1074)
* metrics[batch-submitter]: add new batch submitter metrics
* chore: changeset
* account for failed submissions
* Fix canary publishing (#1093)
* ci: fix custom docker tag
* ci: use new env file
* ci: use outputs from previous job
* ci: fix headers of jobs
* ci: inherit canary tag from builder
* feat[ci]: upload logs for sync tests if failure (#1098)
* deploy: goerli 0.4.0 (#1099)
* deployments: goerli 0.4.0 rc
* readme: update
* chore: add changeset
* fix[dtl]: defend against RPC provider missing events (#1084)
* fix[dtl]: defend against RPC provider missing events
* chore: add changeset
* respond to review comments
* better error handling for missing handlers
* deploy: kovan v.4.0 rc (#1101)
* deploy: kovan v0.4.0 rc
* chore: add changeset
* readme: update
* maintenance[monorepo]: first pass update to README (#1106)
* maintenance[monorepo]: first pass update to README
Doing some relatively minor updates to the README just to clean things up a bit.
* replying to review comments
* Move the metric prefix string to a label (#1047)
Added changeset and fixes
Changeset to patch
* fix[smock]: add support for hardhat 2.4.0 (#1112)
* fix[smock]: add support for hardhat 2.4.0
* chore: add changeset
* lint: fix
* build(deps): bump hosted-git-info from 2.8.8 to 2.8.9 (#1064)
Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.8 to 2.8.9.
- [Release notes](https://github.com/npm/hosted-git-info/releases)
- [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md)
- [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.8...v2.8.9)
---
updated-dependencies:
- dependency-name: hosted-git-info
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* Misc. small improvements to README (#1115)
* Update README.md
* Update README.md
* fix[dtl]: use the same L2 chain ID everywhere (#1122)
* fix[dtl]: use the same L2 chain ID everywhere
* chore: add changeset
* fix: make sync tests only on workflow dispatch (#1123)
* fix[dtl]: remove old stringification function (#1134)
* fix[dtl]: remove old stringification function
* chore: add changeset
* fix[dtl]: log server errors as ERROR instead of INFO (#1133)
* fix[dtl]: log server errors as ERROR instead of INFO
* chore: add changeset
* Contracts: connectL1Contracts & connectL2Contracts (#713)
* Contracts: connect-contracts
* Trying to resolve build problems
* connect-contracts build working
* Adds artifacts-ovm back to gitignore
* Removes incorrect changes
* Adds copy-artifacts script
* Adds test file (not working yet)
* fix: incorrect contract instantiation
* Improves tests and removes old deployment versions
* Single source of truth for predeploy addresses
* Reverts deployments/README.md
* Makes connect-contracts more DRY
* Adds missing @ethersproject/abstract-signer dependency
* Adds argument evaluation
* Adds L1Contracts and L2Contracts types
* Attempts removing artifacts-ovm again
* Adds webpack config (not working yet)
* build: add artifacts to dist (#776)
* Updates lint rule
* Adds l2 imports
* Fixes dependency tree bug
* Removes webpack stuff
* Fixing package.json issues and adds .DS_Store to gitignore
* Removes test-contracts script
* Reverting script change
* Adds comments
* Adds comment
* Renames deployments folders
* Fixes linting errors
* Generates markdown
* build: add deployments directory to Dockerfiles
* Removes unneeded contracts, improves error handling and tests
* Adds changeset
* yarn.lock
* Removes console.log
* Changes from minor to patch version
* Fixes lint errors
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* fix: prevent overflow in abi encoding (#1135)
* l2geth: prevent overflow in abi encoding to ovm codec tx
* chore: add changeset
* tests: replica syncing (#981)
* [wip] add l2_dtl and replica images
* passing basic dummy tx test
* add erc20 test
* add sync test to ci
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
* fix[relayer]: update exported files list in package.json (#1138)
* fix[relayer]: update exported files
* chore: add changeset
* fix: import path (#1141)
* fix: correct import path for altered contract path
* chore: add changeset
* refactor: improve logging for batch submission timeout scenarios (#1120)
* Add highest L1 and L2 block number Gauge metrics to DTL (#1125)
* build: add prom-client to data-transport-layer
* refactor: thread metrics more carefully through data-transport-layer; add two new metrics
* style: fix some style issues
* refactor: make metrics mandatory
* refactor: move metrics register code to top of file
* style: apply linting
* refactor: move promethesus initialization after express
* refactor: move promBundle call up, provide registry
* build: add changeset
* Improve Watcher ability to find transactions (#1107)
* remove listeners and use loop to find tx receipt
* add yarn ready
* moved filters inside loop
* [added] changeset
* Add minimal vscode settings and extensions (#1109)
* chore: add minimal vscode settings and extensions
* chore: Add "files.trimTrailingWhitespace" to vscode native config
* chore: replace vscode prettier plugin with eslint plugin
* fix[contracts]: remove part of MultiMessageRelayer deployment (#1144)
* fix[contracts]: remove part of MultiMessageRelayer deployment
* chore: add changeset
* Define L1 Starting block via OwnershipTransferred rather than AddressSet (#1129)
* Update service.ts
* Create thirty-years-look.md
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* Easy fix for broken watchers (#1121)
* Easy fix for broken watchers
* Ran yarn changeset
Co-authored-by: Liam Horne <liam@lihorne.com>
* feat: go packages (#1111)
* go: add utils module
* readme: update
* Version Packages (#1094)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* build: add husky pre-commit hook to lint (#1146)
* feat[contracts]: add mainnet deploy script (#1147)
* Add mainnet deploy script
* Update mainnet.sh
* Address PR review feedback
* feat: mainnet contract deployment 0.4.0 (#1148)
* feat: mainnet contract deployment 0.4.0
* feat: deployments readme
* chore: add changeset
* contracts: remove dead contract
* contracts: remove dead config
* tests: fix to not test for old contracts
* feat: `rollup gasPrices` RPC endpoint (#1136)
* feature: l2geth endpoint
* chore: add changeset
Co-authored-by: Liam Horne <liam@lihorne.com>
* Adds l2 standard bridge to contracts markdown file (#1151)
* Version Packages (#1150)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Add more info about our branching strategy to the README (#1114)
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Remove references to OVM_L1ETHGateway in deployments and readme (#1119)
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: Elena Gesheva <elena@arenabg.com>
Co-authored-by: ben-chain <ben@pseudonym.party>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
Co-authored-by: Karl Floersch <karl@karlfloersch.com>
Co-authored-by: Rajiv Patel-O'Connor <rajiv.patel.oconnor@gmail.com>
Co-authored-by: rajivpo <rajivpatel-oconnor@Rajivs-MacBook-Pro-2.local>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
Co-authored-by: Ben Wilson <82120899+optimisticben@users.noreply.github.com>
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Tim Myers <timmyers09@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Annie Ke <annieke8@gmail.com>
Co-authored-by: platocrat <37757724+platocrat@users.noreply.github.com>
Co-authored-by: Matt Masurka <m.masurka@gmail.com>
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
Co-authored-by: Alejandro Santander <Palebluedot@gmail.com>
* Re-apply key changes on top of optimism most current develop
* Add docker-compose-replica.yml (#109)
* Create docker-compose-replica.yml
* Add replica service
* Update docker-compose-omgx-replica.yml
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* fix linter; patch gethl2
* configure the deployer correctly
* fix proposer / batch submitter
* update chainIDs
* update rpc test
* Create README_OMGX.md
* upstream - needs more work
* Adds delay to watcher (#1159)
* Adds delay to watcher
* Simplifies delay
* Adds changeset
* Fix wallet test
* Fix deployment test
* Add Python
* Update Dockerfile.omgx_monorepo
* Remove package-lock
* fix: bind dtl functions for missing event codepath (#1161)
* dtl: bind this in L1 missing element error handlers
* dtl: add additional logline
* chore: add changeset
* dtl: add more metrics
* dtl: use counter instead of gauge
Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
* fix: remove 'editor.formatOnSave' from global settings' (#1163)
* merge conflicts
* Update pre-commit
* Version Packages (#1167)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* minor
* Update pre-commit
* Fix wallet test (#119)
* Fix wallet test
* Fix deployment test
* Add Python
* Update Dockerfile.omgx_monorepo
* Remove package-lock
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* Reapply standard changes on top of current develop
* Update package.json
* doc: add notes for releasing new versions with changesets (#1166)
* Bind correct object to method handler in DTL (#1168)
* fix: bind correct object to method handler
* build: add changeset
* Version Packages (#1169)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Fix web wallet
* Fix integration test (#124)
* Fix integration test (#125)
* Fix integration test
* Fix integration test
* Fix wallet_react
* Fix lint test
* Remove package-lock
* Update integration.yml
* Fix wallet deployer
* Collect docker log
* Fix l1-l2-deposit-withdrawal test
* Fix sync test
* Add chainID to deployer config
* make sync tests dispatch only
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* Add short contribution section to primary README (#1157)
* Add short contribution section to primary README
* Update README.md
* fix: prevent batch submitter from submitting batches if low on ETH
* build: add changeset
* Eslint ignore the hardhat folder
* Update README.md
* Beginning to add working examples
* hardhart and waffle example tests
* document/check waffle
* test l1-l2 example
* add patch-package
* Update package.json
* build: ensure lint only staged files on commit
* refactor: do not run --fix on lint-staged
* refactor: *.{ts,js} for eslint regex
* l2geth: rollup client explicitly checks for >= 400 errors
* l2geth: sync service retries connection to remote server
* l2geth: test errors returning from remote
* chore: add changeset
* syncservice: nit
* feat[message-relayer]: add easy relay tool
* chore: add changeset
* upkeep[monorepo]: add changeset info to README
* merge conflict squash
* Daily sync up (#137)
* build: ensure lint only staged files on commit
* refactor: do not run --fix on lint-staged
* refactor: *.{ts,js} for eslint regex
* l2geth: rollup client explicitly checks for >= 400 errors
* l2geth: sync service retries connection to remote server
* l2geth: test errors returning from remote
* chore: add changeset
* syncservice: nit
* feat[message-relayer]: add easy relay tool
* chore: add changeset
* upkeep[monorepo]: add changeset info to README
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Kelvin Fichter <kelvin@optimism.io>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* build: set up eslint prettier correctly
* style: run yarn lint --fix at root
* build: add necessary packages to workspace root
* build: remove --format stylish
* build: set semvery ranges to match across packages
* build: set up prettierrc.js for monorepo
* refactor: rename Range to BlockRange
* build: set up correct working directories
* build: set up lint:fix to use eslint not prettier
* style: run lint:fix on all code
* build: remove prettier extension recommendation
* style: update configuration to include babel-eslint for .js linting
* build: set concurrency to 1 to prevent git add errors on lerna lint
* github actions: bump geth CI golang version
* fix(contracts): prevent L2->L1 calls to system contracts
* Update message relayer fast contracts (#139)
* prepare for wallet reorg
* Create yarn.lock
* fix hardhat bug
* merge conflict resolve
* daily sync up (#141)
* build: set up eslint prettier correctly
* style: run yarn lint --fix at root
* build: add necessary packages to workspace root
* build: remove --format stylish
* build: set semvery ranges to match across packages
* build: set up prettierrc.js for monorepo
* refactor: rename Range to BlockRange
* build: set up correct working directories
* build: set up lint:fix to use eslint not prettier
* style: run lint:fix on all code
* build: remove prettier extension recommendation
* style: update configuration to include babel-eslint for .js linting
* build: set concurrency to 1 to prevent git add errors on lerna lint
* fix(contracts): prevent L2->L1 calls to system contracts
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: ben <ben@pseudonym.party>
* Add Factory contract for creating standard ERC20 tokens
compliant with the standard bridge
* Disallow 0 address for l1 token when creating l2 standard token
* Fix linting issue
* Add deployment script for the L2 token factory
* Fix deploy script OVM_L2StandardTokenFactory constructor params
* Add changeset
* Cleanup deployment script for OVM_L2StandardTokenFactory
and fix a solidity linting error
* refactor(integration): Add clarity to the expectApprox function signature
* fix: skip codechecks for PRs from external repos
* DRAFT move react wallet and the contracts to more clear folders (#138)
* DRAFT move react wallet and the contracts to more clear folders
* merging the axios integration chagnes
* updated the message-relayer-fast contracts
* integrate message-relayer-fast into standard dockers
* Dockerize the message-relayer-fast
* update Readme.md
* remove duplicated contracts - just keep everything in /contracts
* add deploy for fast messenger
* message-relayer-fast testing
* Update serve.sh
* Delete yarn.lock
* Update constants.ts
* Create yarn.lock
* Update constants.ts
* Update function-manipulation.spec.ts
* increase the retries and other minor fixes
* Improved documentation
* fix omgx integration tests
* Update omgx-integration.yml
* integration test remove duplicated tests
* Fix units test configuration
* Update docker-compose-omgx-services.yml
* integration test setup fixes
* fix wallet integration test
* fix for crash on return
* integration tests for `message-relayer-fast`
* Update env.ts
* Autodeploy Token Bridges
* Update wallet contracts
* Update utils.ts
* improve omgx integration tests
* Add address manager address to GH actions for now
Co-authored-by: sahil kashetwar <>
Co-authored-by: Sahil k <sahil@enya.ai>
Co-authored-by: cby3149 <cby3149@outlook.com>
* merge conflicts
* GH actions regular changes
* husky
* Daily sync up (#144)
* build: set up eslint prettier correctly
* style: run yarn lint --fix at root
* build: add necessary packages to workspace root
* build: remove --format stylish
* build: set semvery ranges to match across packages
* build: set up prettierrc.js for monorepo
* refactor: rename Range to BlockRange
* build: set up correct working directories
* build: set up lint:fix to use eslint not prettier
* style: run lint:fix on all code
* build: remove prettier extension recommendation
* style: update configuration to include babel-eslint for .js linting
* build: set concurrency to 1 to prevent git add errors on lerna lint
* github actions: bump geth CI golang version
* fix(contracts): prevent L2->L1 calls to system contracts
* Add Factory contract for creating standard ERC20 tokens
compliant with the standard bridge
* Disallow 0 address for l1 token when creating l2 standard token
* Fix linting issue
* Add deployment script for the L2 token factory
* Fix deploy script OVM_L2StandardTokenFactory constructor params
* Add changeset
* Cleanup deployment script for OVM_L2StandardTokenFactory
and fix a solidity linting error
* refactor(integration): Add clarity to the expectApprox function signature
* fix: skip codechecks for PRs from external repos
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: ben <ben@pseudonym.party>
Co-authored-by: elenadimitrova <elena@arenabg.com>
Co-authored-by: Reggie Gomez <reggieag@gmail.com>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* docker: pin to alpine 3.13 for l2geth
A bug has appeared when older versions of Docker are used to build
alpine based images in alpine version 3.14. To prevent this problem
from happening to the users, this PR pins the version to 3.13.
The observed problem is that `make` cannot run any command and
the error message states `Operation not permitted.` Removing
`make` was one way to solve the problem but that would increase
the diff from upstream geth.
See these links for details:
https://github.com/alpinelinux/docker-alpine/issues/182
https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.14.0
* fix: update statement for skipping codechecks
* contracts: add set-l2-gasprice task
This task allows a user to update the L2 gas price using hardhat.
An example of doing so would be:
```bash
$ export CONTRACTS_DEPLOYER_KEY=0x..
$ CONTRACTS_RPC_URL=https://kovan.optimism.io npx hardhat set-l2-gasprice \
--l2-gas-price 1
```
This hardcodes the predeploy address of the `OVM_GasPriceOracle` smart
contract and the Owner must be used to do the updating, otherwise the
transaction will revert.
* removed unused functions from core utils
* [added] changeset
* next gen integration tests for the OMGX stack (#149)
* next gen integration tests for the OMGX stack
* finish first pass integration test outline
* move LP tests to the `message-relayer-fast`
* Update omgx-integration.yml
* add more tests to message-relayer-fast
* connect up the .env variables
* hard code URIs
* Update utils.ts
* Update omgx-integration.yml
* fix - should have been 8080
* Update omgx-integration.yml
* which address to use?
* Update omgx-integration.yml
* removing not needed code
* remove superfluous logging code
* Update utils.ts
* Update utils.ts
* additional comments and formatting improvements
* fix: use older changes on tests (#152)
* fix: use older structure
* correct messenger
* LP fees on the correct side
* correct messenger
* rearrange depl order
Co-authored-by: Souradeep Das <dsouradeep2@gmail.com>
* Update README_OMGX.md (#150)
Refactored some changes and added some comments I thought might be helpful for people.
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* tests: re-enable all tests (#155)
* re-enable all tests
* re-enable all tests
* Add solhint to contracts package
* Turn off compiler-version rule in solhint
* Add suggestions by @maurelian
https://github.com/ethereum-optimism/optimism/pull/1033#issuecomment-866146467
* Change solhint output formatting to table
* Disable contract-name-camelcase rule in solhint
* Fix max-line-length linting issues in contracts
* Fix quotes linting issues in contracts
* Remove private-vars-leading-underscore rule in solhint
* Add contracts linting to github action
* Fix for hardhat account balance parsing
* Disable generating the bytecodeHash in hardhat contract artifacts
* Review fixes
* Fix review notes
* Fix smockit for a change in hardhat ^2.4.0
which changes the way it parses errors from returndata
Fix provided by @smartcontracts
* dtl: configurable gas price backend
Adds a new config option `--l1-gas-price-backend` or
`DATA_TRANSPORT_LAYER_L1_GAS_PRICE_BACKEND` that can be set to `l1` or
`l2`. This impacts the behavior of the HTTP endpoint `GET /eth/gasprice`
by changing what is queried to return the L1 gas price. The L1 gas price
is required to compute the L2 fee since the L2 fee consists of
`L1 gas price * L1 gas used + L1 gas price * L2 gas limit`. If the L1
gas price differs too much between different L2 providers, then users
using `eth_estimateGas` may submit transactions with too low of a fee
and be unable to submit transactions to the sequencer.
By configuring the DTL to use L2 as the L1 gas price backend, it will
call the Sequencer's RPC endpoint `rollup_gasPrices` which returns the
L1 and L2 gas prices from the point of view of the sequencer. The L2 gas
price exists in the state, so that will always be the same between the
sequencer and any replicas. The L1 gas price does not live on chain, so
querying for it from the sequencer directly will ensure that users send
transactions with a fee that is large enough.
Also adds eth/gasprice info to README.
* Remove bl wl service (#154)
* replace `bl-wl` with direct calls the `omgx_deployer`
* Update docker-compose-omgx-services.yml
* Update up_local.sh
* Add CORS headers to http servers
* updated frontend to use the two new HTTP servers for the addresses
* update webwallet to work with both local and rinkeby
* Add missing .env variables to GH actions
* re-enable docker tages
* re-enable wallet transaction history
* Update up_local.sh
* Update up_local.sh
* Add flag to omgx_deployer to only serve addresses w/o deploying new contracts
* Update docker-compose-omgx-services.yml
* Add back tagging system and improved reliability of GH actions
* removed commented out service
* add rinkeby token addresses (#161)
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* fix: lint deploy-l2 folder in contracts
* Add AWS integration (#159)
* Add AWS integration
* Remove artifacts
* updated ops_omgx/README.md and added .github/workflows/deploy2aws-integration.yml and .github/workflows/push2aws.yml
* add automated provision and deletion of an ec2 instance for running the integration tests
Co-authored-by: Petar Denev <pdenev@gmail.com>
* fix: update CI to avoid running out of memory
* Version Packages
* ci: release latest image tags on release
* feat: update README to include info about rebasing
* Add op_exporter for sequencer metrics and health endoint
Added metric for sequencer health
Added Dockerfile for op_exporter;
Fixed Dockerfile path
* merge conflicts
* re-comment out the usual GH actions
* feat[integration-tests]: make tests work for prod networks
* chore: add changeset
* Increase client_body_buffer_size for rpc-proxy
Added client_max_body_size to rpc-proxy config
* l2geth: use `hexutil.Big` to prevent overflows
The `RollupClient` decodes the JSON from the DTL as a uint64,
this updates it to be a `big.Int`
Includes a test for the value field that ensures it does not overflow
* ci(contracts): only run codecov if contracts package is modified
In order to skip running the CodeCov job when it isn't relevant, a new job was added to the ts-packges workflow. For a PR, this job identifies all the files modified between the base branch and the tip of the PR branch, and writes to a variable which can be used to decide if subsequent jobs should run.
Github Actions provides an easy method for achieving this at the level of a workflow, but not for specific jobs within a workflow.
* Version Packages
* chore(ci): Skip codecov on push events
* feat: add workflow for running SNX test suite
* go: implement gasprices package
The `gasprices` package implements the logic that updates
L2 gasprices on the Optimistic Ethereum Network.
Co-authored-by: Karl Floersch <karl@karlfloersch.com>
* gas-oracle: implement and test
This commit adds the `gas-oracle` which is an offchain entity
that sends transactions to L2 to update the gas price. It must
be configured with a private key as the `OVM_GasPriceOracle`
is owned.
The `gas-oracle` is added to the changesets setup.
Tests are included as well as CI. Dockerizing will happen
in a follow up PR.
* gas-oracle: ci + docker build/publish
Adds a dockerfile for the `gas-oracle` as well as adding it as
a service in the `docker-compose.yaml`. It is not enabled by
default due to memory issues in CI already happening occasionally
where the integration tests are oom killed.
The `gas-oracle` is configured with a key that owns the
`OVM_GasPriceOracle`.
This PR adds the `gas-oracle` to the Github Actions
workflow that is responsible for publishing the docker images.
* Add replica (#169)
* fix: update erc20 deposits (#166)
* fix: update erc20 deposits
* fix: auto default token
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* resolve merge conflicts
* Update docker-compose.yml
* Update docker-compose.yml
* [pull] develop from ethereum-optimism:develop (#164)
* contracts: add set-l2-gasprice task
This task allows a user to update the L2 gas price using hardhat.
An example of doing so would be:
```bash
$ export CONTRACTS_DEPLOYER_KEY=0x..
$ CONTRACTS_RPC_URL=https://kovan.optimism.io npx hardhat set-l2-gasprice \
--l2-gas-price 1
```
This hardcodes the predeploy address of the `OVM_GasPriceOracle` smart
contract and the Owner must be used to do the updating, otherwise the
transaction will revert.
* Add op_exporter for sequencer metrics and health endoint
Added metric for sequencer health
Added Dockerfile for op_exporter;
Fixed Dockerfile path
* feat[integration-tests]: make tests work for prod networks
* chore: add changeset
* Increase client_body_buffer_size for rpc-proxy
Added client_max_body_size to rpc-proxy config
* l2geth: use `hexutil.Big` to prevent overflows
The `RollupClient` decodes the JSON from the DTL as a uint64,
this updates it to be a `big.Int`
Includes a test for the value field that ensures it does not overflow
* ci(contracts): only run codecov if contracts package is modified
In order to skip running the CodeCov job when it isn't relevant, a new job was added to the ts-packges workflow. For a PR, this job identifies all the files modified between the base branch and the tip of the PR branch, and writes to a variable which can be used to decide if subsequent jobs should run.
Github Actions provides an easy method for achieving this at the level of a workflow, but not for specific jobs within a workflow.
* Version Packages
* chore(ci): Skip codecov on push events
* feat: add workflow for running SNX test suite
* go: implement gasprices package
The `gasprices` package implements the logic that updates
L2 gasprices on the Optimistic Ethereum Network.
Co-authored-by: Karl Floersch <karl@karlfloersch.com>
* gas-oracle: implement and test
This commit adds the `gas-oracle` which is an offchain entity
that sends transactions to L2 to update the gas price. It must
be configured with a private key as the `OVM_GasPriceOracle`
is owned.
The `gas-oracle` is added to the changesets setup.
Tests are included as well as CI. Dockerizing will happen
in a follow up PR.
* gas-oracle: ci + docker build/publish
Adds a dockerfile for the `gas-oracle` as well as adding it as
a service in the `docker-compose.yaml`. It is not enabled by
default due to memory issues in CI already happening occasionally
where the integration tests are oom killed.
The `gas-oracle` is configured with a key that owns the
`OVM_GasPriceOracle`.
This PR adds the `gas-oracle` to the Github Actions
workflow that is responsible for publishing the docker images.
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Ben Wilson <bwilson@optimism.io>
Co-authored-by: Kelvin Fichter <kelvin@optimism.io>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: Ben Wilson <82120899+optimisticben@users.noreply.github.com>
Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Karl Floersch <karl@karlfloersch.com>
* Update docker-compose.yml
* adding l1-l2 test ecs scheduled task that does verify communication between L1 and L2 and L2 to L1 (#167)
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* Update docker-compose.yml
* daily update (#170)
* contracts: add set-l2-gasprice task
This task allows a user to update the L2 …
* fix: import path (#1141)
* fix: correct import path for altered contract path
* chore: add changeset
* refactor: improve logging for batch submission timeout scenarios (#1120)
* Fixed CrossDomainMessenger name (#96)
* Add highest L1 and L2 block number Gauge metrics to DTL (#1125)
* build: add prom-client to data-transport-layer
* refactor: thread metrics more carefully through data-transport-layer; add two new metrics
* style: fix some style issues
* refactor: make metrics mandatory
* refactor: move metrics register code to top of file
* style: apply linting
* refactor: move promethesus initialization after express
* refactor: move promBundle call up, provide registry
* build: add changeset
* Improve Watcher ability to find transactions (#1107)
* remove listeners and use loop to find tx receipt
* add yarn ready
* moved filters inside loop
* [added] changeset
* Add minimal vscode settings and extensions (#1109)
* chore: add minimal vscode settings and extensions
* chore: Add "files.trimTrailingWhitespace" to vscode native config
* chore: replace vscode prettier plugin with eslint plugin
* fix[contracts]: remove part of MultiMessageRelayer deployment (#1144)
* fix[contracts]: remove part of MultiMessageRelayer deployment
* chore: add changeset
* Define L1 Starting block via OwnershipTransferred rather than AddressSet (#1129)
* Update service.ts
* Create thirty-years-look.md
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* Easy fix for broken watchers (#1121)
* Easy fix for broken watchers
* Ran yarn changeset
Co-authored-by: Liam Horne <liam@lihorne.com>
* feat: go packages (#1111)
* go: add utils module
* readme: update
* Version Packages (#1094)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* build: add husky pre-commit hook to lint (#1146)
* feat[contracts]: add mainnet deploy script (#1147)
* Add mainnet deploy script
* Update mainnet.sh
* Address PR review feedback
* feat: mainnet contract deployment 0.4.0 (#1148)
* feat: mainnet contract deployment 0.4.0
* feat: deployments readme
* chore: add changeset
* contracts: remove dead contract
* contracts: remove dead config
* tests: fix to not test for old contracts
* feat: `rollup gasPrices` RPC endpoint (#1136)
* feature: l2geth endpoint
* chore: add changeset
Co-authored-by: Liam Horne <liam@lihorne.com>
* Adds l2 standard bridge to contracts markdown file (#1151)
* Version Packages (#1150)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Add more info about our branching strategy to the README (#1114)
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Remove references to OVM_L1ETHGateway in deployments and readme (#1119)
* Keep the user logged in after changing chain (#99)
* Keep the user logged in after changing chain
* Update Nft.js
* Detect if user is in the wrong chain
Co-authored-by: cby3149 <cby3149@outlook.com>
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* Merge conflics resolve (#110)
* wip
* gethl2
* wip
* batch submitter
* core utils
* DTL
* message relayer
* contracts
* wip
* Update service.ts
* DTL
* messaage-relayer
* Update yarn.lock
* final 5 files
* [pull] develop from ethereum-optimism:develop (#91)
* chore: reduce hardhat timeout to 20 seconds (#968)
* fix: force LF line endings for scripts to avoid docker problems on Windows (#974)
* fix: use correct line endings for windows
* chore: add changeset
* refactor[contracts]: Turn ExecutionManagerWrapper into a predeployed contract (#808)
* wip: Started working on L2 contract testing revamp
* test: clean tests for ProxyEOA
* style: clean imports for ProxyEOA tests
* test: port tests for ECDSAContractAccount
* fix tests and add wrapper to dump
* fix: add em wrapper to l2 deploy
* ffix: add comments to wrapper contract
* fix: add more comments
* fix: add smock comment for unbind
* Update packages/smock/src/smockit/binding.ts
* maintenance[contracts]: use dashes in chain container names (#819)
* maintenance: use dashes in chain container names
* chore: add changeset
* feat[contracts]: temporarily disable EOA upgrades (#857)
* feat[contracts]: disable eoa upgrades temporarily
* chore: add changeset
* Update OVM_ProxyEOA.sol
* fix: turn upgrade into a noop
* lint: fix
* feat[contracts]: Update Lib_AddressManager.AddressSet event to speed up data transport layer (#820)
* feat: update and improve AddressSet event
* chore: add changeset
* Update Lib_AddressManager.sol
* Reduce gas costs of deposits (#667)
* Remove messageNonce from BaseCrossDomainMessenger and use CTC queue lenght instead
Remove Abs_BaseCrossDomainMessenger and restore dedicated nonce generation in OVM_L2CrossDomainMessenger
Fix typo
* Remove sentMessages mapping from L1CrossDomainMessenger storage
and use the nonce to check for existence of replayed transaction
* Refactor out common library function for getting cross domain calldata
* Post rebase fixes
* Use the queueIndex to check the transaction was enqueued
* Fix tests for L1CrossDomainMessenger.replayMessage
Also make that test work with an actual CanonicalTransactionChain implementation rather than a smock
* Lint fixes
* Optimise the resolve calls into the AddressManager lib
* Rename the nonce parameter to be clear
* Update test name
Co-authored-by: ben-chain <ben@pseudonym.party>
* Rename getXDomainCalldata to encodeXDomainCalldata to match the new Lib_CrossDomainUtils
Co-authored-by: ben-chain <ben@pseudonym.party>
* optimism: bump gaslimit to 10 million #870 (#871)
* optimism: bump gaslimit to 10million
* chore: add changeset
* optimism: bump max gaslimit to 10 mil
* chore: add changeset
* chore: remove unnecessary changeset
* chore: remove unnecessary changeset
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* fix: use correct contract name in tests (#921)
* fix: disable upgradability from ECDSA Account (#885)
* l2geth: remove `SignatureHashType` (#752)
* l2geth: remove tx type
* l2geth: no longer parse type in rollup client
* chore: add changeset
* chore: remove extra sighash params
* fix: do not check txtype in integration tests
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* feat[contracts]: introduce OVM_GasPriceOracle (#912)
* feat[contracts]: congestion price oracle
* chore: add changeset
* contracts: gas price oracle (#917)
* contracts: gas price oracle
* tests: update
* fees: fix tests
* contracts: simplify gas price oracle
* lint: fix
* test: execution price is at the 1st storage slot
* chore: rename predeploy to GasPriceOracle
* chore: rename gas price oracle test name
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* fix: configure max gas limit to 11m (#928)
Uniswap V3 contracts require that, otherwise they throw call exceptions at deployment
* Consolidate Predeploy Addresses (#931)
* added library for predeploy addresses
* refactor tests and other packages to use exported predeploys
* revert library usage in OVM_ECDSAContractAccount
* lint
* added newline
* fixed address typos
Co-authored-by: rajivpo <rajivpatel-oconnor@Rajivs-MacBook-Pro-2.local>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* chore: remove yarn-error.log and gitignore it (#956)
* feat[contracts]: Replace Lib_RingBuffer with a much simpler Lib_Buffer (#821)
* feat[contracts]: replace Lib_RingBuffer with a simpler Lib_Buffer
* chore: changeset
* test: add tests for Lib_Buffer
* lint: fix
* test: add extra coverage for Lib_Buffer
* Update packages/contracts/contracts/optimistic-ethereum/libraries/utils/Lib_Buffer.sol
Co-authored-by: ben-chain <ben@pseudonym.party>
* add some extra comments
Co-authored-by: ben-chain <ben@pseudonym.party>
* fix(contracts): import predeploys (#982)
* fix(contracts): import predeploys
* fix: lint
* feat: add hardhat deploy instructions to readme (#965)
* feat: add deployment instructions to readme
* Add changeset
* fix style
* Update README.md
* feat: fees v2 (#976)
* l2 geth: new fee logic
* l2 geth: migrate to fees package
* core-utils: new fee scheme
* chore: add changeset
* l2geth: delete dead code
* integration-tests: fix typo
* integration-tests: fixes
* fees: use fee scalar
* lint: fix
* rollup: correct gas payment comparison
* fix(integration-tests): do not hardcode gas price
* core-utils: update with new scheme
* l2geth: refactor rollup oracle
* l2geth: clean up DoEstimateGas
* l2geth: implement latest scheme
* tests: fix up
* lint: fix
* l2geth: better sycn service test
* optimism: rename to TxGasLimit
* fee: fix docstring
* tests: fix
* variables: rename
* l2geth: prevent users from sending txs with too high of a fee
* integration-tests: fix import
* integration-tests: fix type
* integration-tests: fix gas limits
* lint: fix
* l2geth: log error
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* Add static analysis action (#848)
* Add static analysis github action
setup python and install slither
* Add nvmrc file for setting node to v14.17
* Update slither command run to link missing contract packages from monorepo root
* Add steps for installing dependencies
* Add yarn build step to github action
* Enable colour in github action for static analysis
* Disable certain detectors
* Ensure slither does not fail build
* Add instructions on running static analysis to monorepo readme
* build(deps): bump ws from 7.4.4 to 7.4.6 in /ops/docker/hardhat (#987)
Bumps [ws](https://github.com/websockets/ws) from 7.4.4 to 7.4.6.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.4.4...7.4.6)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix[l2geth]: fix accidental merge conflict (#994)
* feat[message-relayer]: relay tx generator (#952)
* feat[message-relayer]: relay tx generator
* whoops, I burned our infura key
* fix minor bug
* add comments
* add more comments and clean stuff up
* add empty test descriptions
* add tests
* move smock to dev deps
* chore: add changeset
* minor cleanup to merkle tree proof function
* use bignumber math to avoid nested await
* use a better interface
* minor fixes and simplifications
* backwards compatible dtl syncing (#986)
* kovan: fix attempt
* kovan: db fix
* kovan: types are strings from db
* l2geth: parse things as strings
* chore: add changeset
* dtl: also stringify the range query
* geth: dereference
* geth: assign err
* dtl: handle null
* dtl: fix unit tests
* fix[smock]: fix broken call assertions for overloaded functions (#996)
* fix[smock]: fix broken call assertions for overloaded functions
* chore: add changeset
* minor correction and add a test
* add a test for non-overloaded functions
* fix[message-relayer]: fix failing test because of merge with develop (#1000)
* fix[message-relayer]: remove spreadsheet mode (#998)
* fix[message-relayer]: remove spreadsheet mode
* chore: add changeset
* Lower local rollup timestamp refresh (#985)
* update rollup timestamp refresh
* increase refresh time to 5s
* feat: fees v3 (#999)
* core-utils: fee impl v3
* l2geth: fees v3 impl
* integration-tests: update for fees v3
* chore: add changeset
* fix: typo
* integration-tests: fix and generalize
* fees: update fee scalar
* l2geth: check gas in the mempool behind usingovm
* tests: fix up
* l2geth: remove dead var
* truffle: fix config
* fix: remove dead coders (#1001)
* chore: delete dead coders
* chore: add changeset
* dtl: remove dead imports
* core-utils: delete dead tests
* batch-submitter: remove txtype
* chore: add changeset
* docs[message-relayer]: add a README and improve the interface for generating proofs (#1002)
* docs[message-relayer]: add basic docs and clean up an interface
* chore: add changeset
* dtl: log error stack for failed http request (#995)
* dtl: log error stack for failed http request
* chore: add changeset
* Add rpc-proxy service for whitelisting JSON RPC methods to the sequencer. (#945)
* Add healthcheck endpoint for rpc-proxy
Added ethereum-nginx-proxy source
updated README and docker image build
* Check ETH_CALLS_ALLOWED is set, clean up comments, remove old Dockerfile
* Pass additional information across domains via token gateways (#824)
* feat(contracts): add from and data args to L1ERC20Gateway
fix(integration): add gasLimit to fundUser
refactor(contracts): add data to gateway events
add changeset
fix(integration): provide data in outboundTransfer
refactor(contracts): reset Abs_L2TokenGateway to Abs_L2DepositedToken
refactor(contracts): fix mismatched names
* feat[contracts]: add custom gas arg to gateway
fix(contracts): take max of user vs. default gas
* fix(integrations): update ovm-eth function call
* fix(integration): remove unecessary explicit gasLimit
* test(contracts): 32kb transfer, 9MM gas
* fix(contracts): fixup comment, bytes arg last
* fix(integration): args order in integrations
* fix(contracts): remove unused L2 gas arg
* fix(contracts): limit data that can be passed to L2
* fix(integration): better tests for data length
* test: check for error on too large data
* Experimental: specify gaslimit in before hook
* fix(integration): add l2 gas argument
* fix: increase gas on fundUser
* fix(contracts): remove duplicate max size limit
* fix(integration): fine tune gas amounts
* lint
* fix: large data test
* fix(integration): set gas closer to real cost
* fix(contracts): remove unused bridge variables
These variables were the default gas amounts for cross domain messages
* fix(contracts): Reorder args
Place dynamic length args last
* fix(integration): update estimateGas values
* fix(integration): reset eth withdraw estimate to 21000
* fix(integration): update expected gas amount
* fix(integration): reduce gas amount for ETH withdraw
* More consistent style for Constant values (#991)
* chore(contracts): make container addresses be constants
chore(contracts): consistent style for constant vars
* chore(contracts): add internal on predeploy constants
* feat: deployment config for fee oracle contract (#936)
* feat[contracts]: add GasPriceOracle w/o predeploy
Based on #912
* feat[contracts]: congestion price oracle
* chore: add changeset
* contracts: gas price oracle (#917)
* contracts: gas price oracle
* tests: update
* fees: fix tests
* contracts: simplify gas price oracle
* lint: fix
* test: execution price is at the 1st storage slot
* chore: rename predeploy to GasPriceOracle
* chore: rename gas price oracle test name
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* Add an L2 deploy script for gas oracle contract
* Add a kovan deployment artifact
* Add deployment to readme
* Add extra validation & initial execution price
* Update README.md
* Fix execution price logic
* Perform new deployment with final contract
* contracts: better require in ovm gas price oracle
* Deploy L2GasPriceOracle
* Update contract to use new fee logic & rename to gas
* Deploy updated contract
* Fix lint
* gas price oracle: do not restrict gas price
* gas price oracle: new deployment
* tests: delete dead test
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* ops: expose debug namespace (#1007)
* develop merge fixes
* refactor[l2geth]: queue origin type (#975)
* refactor: queueOrigin type
* Convert queueOrigin to uint8 in encode
* Add changeset
* Regenerate json marshall
* style: combine lines
* Add Stringer for QueueOrigin
* Turn QueueOrigin into uint8
* l2geth: gen tx meta fix
* l2geth: gen tx meta fix
* lint
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
* fix(sync-service): prevent underflows (#1015)
* fix(sync-service): prevent underflows
* chore: add changeset
* chore: remove dead confirmation depth
* chore: remove eth1conf depth from rollup config
* test: remove duplicate value in array (#1014)
* ci: tag docker image for canary with abbreviated GITHUB_SHA (#1006)
* ci: tag docker image for canary with abbreviated GITHUB_SHA
* ci: update from 6 bytes to 8 bytes of abbreviation
* refactor: improve logging for transactions being submitted to chain with gasPrice (#1016)
* refactor: improve logging for transactions being submitted to chain with gasPrice
* lint: apply lint autofixes
* dtl: remove stringify from db logic + more overflow protection (#1010)
* dtl: remove stringify from db logic
* l2geth: overflow protection
* dtl: overflow protection
* chore: add changeset
* ci: upload logs for failed integration tests (#1020)
* fix(dtl): improve slow blocking JSON parsing that occurs during l2 sync (#1019)
The use of eth_getBlockRange returns a large response which is very
slow to parse in ethersjs, and can block the event loop for upwards
of multiple seconds.
When this happens, incoming http requests will likely timeout and fail.
Instead, we will parse the incoming http stream directly with the bfj
package, which yields the event loop periodically so that we don't
fail to serve requests.
* fix: lint errors in dtl (#1025)
* fix[dtl]: fix dtl bug breaking verifiers (#1011)
* fix[dtl]: fix dtl bug breaking verifiers
* tweaks so tests pass
* chore: add changeset
* fix: deterministic blockhashes (#1032)
* config: set etherbase
* l2geth: add deterministic clique key
* l2geth: default value
* chore: add changeset
* test: add sync test for deterministic blockhash
Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
* Version Packages (#978)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* ci: add sync test's own workflow (#1031)
* fix(dtl): incorrect parsing of eth_getBlockRange result (#1037)
* Version Packages (#1045)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix: no gas refund (#1043)
* l2geth: remove the gas refund
* chore: add changeset
* refactor[contracts]: remove one-off GasPriceOracle deployment file (#1046)
* refactor[contracts]: remove one-off gpo deployment
* chore: add changeset
* feat[contracts]: introduce new L1ChugSplashProxy contract (#1009)
* feat[contracts]: add L1ChugSplashProxy
* improve comments slightly
* start adding tests
* add more tests
* make the system pausable
* added another test
* add some extra comments
* Update packages/contracts/test/contracts/chugsplash/L1ChugSplashProxy.spec.ts
Co-authored-by: Maurelian <maurelian@protonmail.ch>
* Update packages/contracts/test/contracts/chugsplash/L1ChugSplashProxy.spec.ts
Co-authored-by: Maurelian <maurelian@protonmail.ch>
* chore: add changeset
* address review feedback
Co-authored-by: Maurelian <maurelian@protonmail.ch>
* feat[contracts]: add sequencer fee wallet (#1029)
* wip: first draft of the fee wallet
* add fee wallet to dump
* rename to sequencer vault
* add L1 fee wallet to geth config
* add unit tests
* fix geth linting error
* add a basic integration test
* fix broken integration test
* add test for correct storage slot
* add integration test for fee withdrawal
* fix typo in integration tests
* fix a bug bin integration tests
* Update OVM_SequencerFeeVault.sol
* fix bug in contract tests
* chore: add changeset
* fix bug in contract tests
* build(deps): bump glob-parent from 5.1.1 to 5.1.2 (#1036)
Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/gulpjs/glob-parent/releases)
- [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2)
---
updated-dependencies:
- dependency-name: glob-parent
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: Liam Horne <liam@lihorne.com>
* fix: predeploy gasprice oracle (#1039)
* l2geth: delete extra config options
* l2geth: stop using extra config options
* l2geth: more stop using extra config options
* chore: add changeset
* l2geth: add new config for gpo owner
* chore: add changeset
* l2geth: fix tests
* tests: fix build
* l2geth: optimize loops (#1027)
* l2geth: optimize loops
* l2geth: stop ticker when done
* l2geth: don't wait for first tick
* chore: add changeset
* Enable custom tagging of release docker image (#1048)
* ci: enable custom tagging of release docker image
* ci: refactor to add prerelease prefix for secuirty
* doc: typo
* ci: fix indentation issue of canary workflow
* ci: fix typo with GITHUB_SHA
* fix: typo in USE_HARDHAT config (#1023)
* fix: abi encoded tx (#1049)
* contracts: don't double rlp decode
* chore: add changeset
* lint: fix
* deps: update
* linting: cleanup
* feat: contracts: use selector
* fix: contracts: use typescript
* contracts: use interface
* l2geth: bump to go 1.15 (#1058)
* l2geth: bump to go 1.15
* chore: add changeset
* Change monotonicity band-aid code to log warnings not errors (#1060)
* refactor: change monotonicity band-aid code to log warnings not errors
* build: add changeset
* feat(contracts, l2geth): native ETH value support for ovmCALL (#1038)
* feat(contracts): add ovmCALL-types with native value
* add ovmCALLVALUE context
* add ovmBALANCE
* test success and revert cases
* test empty contract case
* chore: lint
* test(integration-tests): ovmCALL-types with value (compiler and wrapper)
* fix ovmDELEGATECALL type, update tests
* add ovmSELFBALANCE
* fix ovmDELEGATECALL jumping to CALL
* chore: lint
* fix(contracts): account for intrinsic gas of OVM_ETH sends
* fix(contracts): merge conflict bug
* fix(contracts): update gas benchmark
* feat(contracts, integration-tests): use new value-compatible compiler
* feat(contracts,l2geth): support value calls in OVM_ECDSAContractAccount
* fix(contracts): ovmDELEGATECALL does not change message context
* feat(contracts): sending value between EOAs
* test(integration-tests): ovmDELEGATECALL preserves ovmCALLVALUE
* test(integration-tests): assert ovmSELFBALANCEs correct
* test(integration-tests): intrinsic gas for eth value calls
* test(integration-tests): update gas values
* chore(contracts): lint
* feat(contracts, l2geth): eth_calls with nonzero value
* chore: minor fixups and comments based on PR feedback
* test(integration-tests): add requested tests from PR reviews
* test(integration-tests): ovmSELFBALANCE is preserved in ovmDELEGATECALLs
* fix(contracts): fix bug where ovmDELEGATECALL could fail if balance was lower than the ovmCALLVALUE
* chore: add changeset
* fix(contracts): update intrinsic gas for worst-case value sends
* chore: address final PR nits/improvements
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
* Add erc1271 support to contract account (#1052)
* add ERC1271 support, failing unit tests
* add integration test for isValidSignature
* remove .only
* lint
* add changeset
* clean up 1271 tests and lint
* switch back to using waffle wallet
* lint
* fix import
* feat[contracts]: slightly better account funding for hardhat accounts (rebased) (#1065)
* feat[contracts]: better account funding for hardhat accounts
* add a sleep to avoid any potential problems
* chore: add changeset
* fix: bug with gas estimation in funding step
* fix: limit to 20 accounts max
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
* Ensure Sentry is correctly set up for DTL and MR (#1054)
* refactor: add logger and metrics to options for BaseService
* refactor: thread sentryOptions through from message-relayer into BaseService
* refactor: ensure DTL Logger is using Sentry for errors
* style: lint base-service.ts
* refactor: init Sentry on batch-submitter too
* refactor: init Sentry on message-relayer too
* refactor: pass in basic logger to MessageRelayerService
* build: provide changeset
* fix: correct usage of use-sentry boolean config
* refactor: appropriately type loggingOptions
* build: add @sentry/node
* build: add @sentry/node to message-relayer and fix linting issue
* Add more logging information to monotonicity violation logs (#1066)
* refactor: log idx of monotonicity violation from batch
* build: add changeset
* temporarily disable hardhat example tests (#1071)
* fix: monotonicity auto healer (#1070)
* fix: monotonicity auto healer
* add: changeset
* Version Packages (#1053)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Standard token bridge (#988)
* Remove abstract token gateway and deposited token implementations
* Further simplification of bridge contracts
* Standart token bridge and L2 token implementation
* Fix spacing
* Implement case when a bad deposit happens to a nonexistent L1<>L2 token pair
* Use SafeMath in common token bridge accounting
* test(contracts): fix finalizeWithdrawal test
* fix(contracts): use SafeERC20 on token deposits
* Rename OVM_L1ERC20Gateway to OVM_L1ERC20Bridge contract
* Rename iOVM_L1ERC20Gateway to iOVM_L1ERC20Bridge contract
* Cleanup gateway to bridge rename
* Better name for the mapping holding l1->l2 deposit amounts
* Use OZ SafeMath
* Rename local variables in OVM_L2DepositedERC20 from gateway to bridge
* Merge ETH and ERC20 bridge contracts
* Rename OVM_L1ERC20Bridge to OVM_L1StandardBridge and fix tests from merging the ETH and ERC20 bridges
* Better name for iAbs_BaseCrossDomainMessenger -> iOVM_CrossDomainMessenger
* Correct the bounce back of deposit sender and recipient properties
* Remove obsoleted event from OVM_L2DepositedERC20
* chore(contracts): change references from ETHGateway to Bridge
* Fix a linting error
* fix(contracts): add bridge to deployer
* Split off ERC20Bridge interface for the purposes
of being reused in custom ERC20 bridges
* Split off interface natspec definitions
* Draft version of OVM_L2DepositedERC20 splitted into a standard L2 erc20: L2StandardERC20 and
a common L2 bridge: OVM_L2StandardBridge
* style(contracts): define L1_ETH_ADDRESS as constant
* test(integration): update interface to use depositETH
* test(contracts): fix OVM_L1StandardBridge tests
* test(contracts): fix L2 Standard Bridge tests
* test(contracts): lint and remove an obsolete test case
* Fix modifier check to comply with the L2 bridge distinction from L2 token
* Simplify address <> interface casting in bridges
* Ensure natspec comments are correct
also add l1 and l2 token params to WithdrawalInitiated event for consistency
* Fix issues in L1 and L2 bridges to ensure
cross domain messages are sent only between the two bridges
also adjusted withdrawals to send to either finalizeETHWithdrawal or finalizeERC20Withdrawal
depending on which asset is being withdrawn
* Remove AddressManager from the L1 standard bridge
* REVERT ME: instruments cross domain enabled
* fix(contracts): remove Address Manager from L1 Bridge
* feat(contracts): make L2 Standard Bridge a predeploy
* WIP: update deployments for standard bridges
* WIP: update deployments for standard bridges
* l2geth: TEMP log contract calls
* chore(l2geth): replace eth gateway with standard bridge
* fix(contracts): make contract-deployment/config work
* WIP fix(integration): update integration tests for bridge
* Remove ovmEth from L1 Standard bridge as obsoleted
* Separate ERC20 standard implementation from L2 bridge
* Formatting fixes
* chore(l2geth): replace eth gateway with standard bridge
* Revert "REVERT ME: instruments cross domain enabled"
This reverts commit d5bb8f8f67974d0a3e65fc000f08858328a4bbbc.
* fix: lint ts
* Implement EIP-165 in the Standard L2 ERC20 token
Also switch that to be based off the OpenZeppelin default implementation plus mint and burn
Additionally remove the obsoleted iOVM_ERC20
* fix(contracts): add deployment check on bridge proxy
fix(contracts): whitespace
fix(contracts): init bridge implementation with non-zero address
* Remove dependency on Ownable contract for the StandardERC20 token on L2
* fix(contracts): update deployment scripts
* fix: lint
* remove debugging code
* fix: correct rpc get balance slot
* restore l2 cross domain messenger
* fix: lint
* Add a test for a non compliant token deposit
* Only allow EOAs to deposit ETH and ERC20
* Add comments and tests for ERC165 implementation
* Decide against using explicit ETH MOCK address as we're not using it for checks
* Fix linting issues
* Add onlyEOAContract restriction to standard bridge withdrawals
* Update codehashes in L2 Standard bridge
* fix(ops): remove unintentionally added file
* feat(contracts): add expectApproxGasCost function
* fix(integration): proper arrayify input on fundUser
* fix(integration): proper gas value checks
* Revert "Add onlyEOAContract restriction to standard bridge withdrawals"
This reverts commit 2713c06ceb2609e4f13718e1034a4d76210d9758.
* fix(contracts): removed unused expectApproxGasCost for now
* fix(contracts): update OVM_SequencerFeeVault for bridge changes
* lint
* Update deployment for L1 Bridge w/ ChugSplash
* Revert "l2geth: TEMP log contract calls"
This reverts commit 21d42259278449f221bf34605162229b3d9d4fa9.
* Apply suggestions from code review
* Apply suggestions from code review
* fix(contracts): deploy with chugsplash proxy
* fix(contracts): add working bridge and chugsplash proxy deployment
* fix(contracts,integration): 500k gas for depositETH
* comment(contracts): describe failed deposit handling on l2
* Apply suggestions from code review
Co-authored-by: ben-chain <ben@pseudonym.party>
* docs: add changeset
* fix(integration): set working l2 gas amount on funduser
* test(integration): add receive() test
* fix(contracts): reset receive to 1.2MM l2 gas
* test(examples): skip l1-l2 example test for now
* fix(contracts): drop hardcoded gas to 500k in receive()
* fix(contracts): use abi.encodeWithSignature
* fix(contracts): resolve merge conflicts
* feat(integration): add expectApprox for flexible gas testing
* fix(integration): fix failing gas tests
* fix: incorrect l2 gas for deposit
* Update utils.ts
* fix(workflow): disable l1-l2 example until npm imports are fixed
* chore: final round of PR review nits and tests
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: ben-chain <ben@pseudonym.party>
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
* fix: comment out codeowners (#1073)
* fix: use predeploy constant lib for em wrapper (#1075)
* fix: use predeploy constant lib for em wrapper
* chore: add changeset
* fix[l2geth]: off-by-one sometimes breaking replica sync (#1082)
* fix[l2geth]: off-by-one sometimes breaking replica sync
* chore: add changeset
* fix(l2geth): Log 'end of OVM execution' correctly (#1080)
* refactor[contracts]: move account contracts to predeploy folder (#1085)
* refactor[contracts]: move account contracts to predeploy folder
* chore: add changeset
* maintenance[contracts]: rename precompiles test folder to predeploys (#1086)
* fix[bs]: disambiguate generic submission errors (#1051)
* fix[bs]: disambiguate generic submission errors
* add cases for errors
* separate out errors from transaction reverts with reasons
* remove extraneous errors
* WETH deposit and withdraw on OVM_ETH (#1083)
* feat(contracts): add no-op WETH9 functionality to OVM_ETH
* working WETH deposit and withdraw + tests
* add changeset
* address PR feedback
* update WETH9 contract implementation
* add fallback to WETH9
* add fallback and revert withdraw test
* update nit comment
Co-authored-by: ben <ben@pseudonym.party>
* Also move the accounts interface to iOVM/predeploys (#1087)
* refactor[contracts]: move account interface to predeploy folder
* chore: add changeset
* Version Packages (#1089)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix: use -z flag for var unset in canary
* Use Eslint instead of Tslint (#1005)
* removed tslint
* forgot to commit files
* made .eslintrc.js consistent for all subdirs and other cleanup
* [removed] includes and files keys from tsconfig.json
* removed file level linting exceptions and added details to line level
* added changeset
* fixed newly introduced linting errors from rebase
* enable json import for batch submitter
* removed ecdsa-coder
* maybe a tsconfig issue?
* Update deploy.ts
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: platocrat <37757724+platocrat@users.noreply.github.com>
* metrics[batch-submitter]: add new batch submitter metrics (#1074)
* metrics[batch-submitter]: add new batch submitter metrics
* chore: changeset
* account for failed submissions
* Fix canary publishing (#1093)
* ci: fix custom docker tag
* ci: use new env file
* ci: use outputs from previous job
* ci: fix headers of jobs
* ci: inherit canary tag from builder
* feat[ci]: upload logs for sync tests if failure (#1098)
* deploy: goerli 0.4.0 (#1099)
* deployments: goerli 0.4.0 rc
* readme: update
* chore: add changeset
* fix[dtl]: defend against RPC provider missing events (#1084)
* fix[dtl]: defend against RPC provider missing events
* chore: add changeset
* respond to review comments
* better error handling for missing handlers
* deploy: kovan v.4.0 rc (#1101)
* deploy: kovan v0.4.0 rc
* chore: add changeset
* readme: update
* maintenance[monorepo]: first pass update to README (#1106)
* maintenance[monorepo]: first pass update to README
Doing some relatively minor updates to the README just to clean things up a bit.
* replying to review comments
* Move the metric prefix string to a label (#1047)
Added changeset and fixes
Changeset to patch
* fix[smock]: add support for hardhat 2.4.0 (#1112)
* fix[smock]: add support for hardhat 2.4.0
* chore: add changeset
* lint: fix
* build(deps): bump hosted-git-info from 2.8.8 to 2.8.9 (#1064)
Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.8 to 2.8.9.
- [Release notes](https://github.com/npm/hosted-git-info/releases)
- [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md)
- [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.8...v2.8.9)
---
updated-dependencies:
- dependency-name: hosted-git-info
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* Misc. small improvements to README (#1115)
* Update README.md
* Update README.md
* fix[dtl]: use the same L2 chain ID everywhere (#1122)
* fix[dtl]: use the same L2 chain ID everywhere
* chore: add changeset
* fix: make sync tests only on workflow dispatch (#1123)
* fix[dtl]: remove old stringification function (#1134)
* fix[dtl]: remove old stringification function
* chore: add changeset
* fix[dtl]: log server errors as ERROR instead of INFO (#1133)
* fix[dtl]: log server errors as ERROR instead of INFO
* chore: add changeset
* Contracts: connectL1Contracts & connectL2Contracts (#713)
* Contracts: connect-contracts
* Trying to resolve build problems
* connect-contracts build working
* Adds artifacts-ovm back to gitignore
* Removes incorrect changes
* Adds copy-artifacts script
* Adds test file (not working yet)
* fix: incorrect contract instantiation
* Improves tests and removes old deployment versions
* Single source of truth for predeploy addresses
* Reverts deployments/README.md
* Makes connect-contracts more DRY
* Adds missing @ethersproject/abstract-signer dependency
* Adds argument evaluation
* Adds L1Contracts and L2Contracts types
* Attempts removing artifacts-ovm again
* Adds webpack config (not working yet)
* build: add artifacts to dist (#776)
* Updates lint rule
* Adds l2 imports
* Fixes dependency tree bug
* Removes webpack stuff
* Fixing package.json issues and adds .DS_Store to gitignore
* Removes test-contracts script
* Reverting script change
* Adds comments
* Adds comment
* Renames deployments folders
* Fixes linting errors
* Generates markdown
* build: add deployments directory to Dockerfiles
* Removes unneeded contracts, improves error handling and tests
* Adds changeset
* yarn.lock
* Removes console.log
* Changes from minor to patch version
* Fixes lint errors
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* fix: prevent overflow in abi encoding (#1135)
* l2geth: prevent overflow in abi encoding to ovm codec tx
* chore: add changeset
* tests: replica syncing (#981)
* [wip] add l2_dtl and replica images
* passing basic dummy tx test
* add erc20 test
* add sync test to ci
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
* fix[relayer]: update exported files list in package.json (#1138)
* fix[relayer]: update exported files
* chore: add changeset
* fix: import path (#1141)
* fix: correct import path for altered contract path
* chore: add changeset
* refactor: improve logging for batch submission timeout scenarios (#1120)
* Add highest L1 and L2 block number Gauge metrics to DTL (#1125)
* build: add prom-client to data-transport-layer
* refactor: thread metrics more carefully through data-transport-layer; add two new metrics
* style: fix some style issues
* refactor: make metrics mandatory
* refactor: move metrics register code to top of file
* style: apply linting
* refactor: move promethesus initialization after express
* refactor: move promBundle call up, provide registry
* build: add changeset
* Improve Watcher ability to find transactions (#1107)
* remove listeners and use loop to find tx receipt
* add yarn ready
* moved filters inside loop
* [added] changeset
* Add minimal vscode settings and extensions (#1109)
* chore: add minimal vscode settings and extensions
* chore: Add "files.trimTrailingWhitespace" to vscode native config
* chore: replace vscode prettier plugin with eslint plugin
* fix[contracts]: remove part of MultiMessageRelayer deployment (#1144)
* fix[contracts]: remove part of MultiMessageRelayer deployment
* chore: add changeset
* Define L1 Starting block via OwnershipTransferred rather than AddressSet (#1129)
* Update service.ts
* Create thirty-years-look.md
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* Easy fix for broken watchers (#1121)
* Easy fix for broken watchers
* Ran yarn changeset
Co-authored-by: Liam Horne <liam@lihorne.com>
* feat: go packages (#1111)
* go: add utils module
* readme: update
* Version Packages (#1094)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* build: add husky pre-commit hook to lint (#1146)
* feat[contracts]: add mainnet deploy script (#1147)
* Add mainnet deploy script
* Update mainnet.sh
* Address PR review feedback
* feat: mainnet contract deployment 0.4.0 (#1148)
* feat: mainnet contract deployment 0.4.0
* feat: deployments readme
* chore: add changeset
* contracts: remove dead contract
* contracts: remove dead config
* tests: fix to not test for old contracts
* feat: `rollup gasPrices` RPC endpoint (#1136)
* feature: l2geth endpoint
* chore: add changeset
Co-authored-by: Liam Horne <liam@lihorne.com>
* Adds l2 standard bridge to contracts markdown file (#1151)
* Version Packages (#1150)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Add more info about our branching strategy to the README (#1114)
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Remove references to OVM_L1ETHGateway in deployments and readme (#1119)
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: Elena Gesheva <elena@arenabg.com>
Co-authored-by: ben-chain <ben@pseudonym.party>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
Co-authored-by: Karl Floersch <karl@karlfloersch.com>
Co-authored-by: Rajiv Patel-O'Connor <rajiv.patel.oconnor@gmail.com>
Co-authored-by: rajivpo <rajivpatel-oconnor@Rajivs-MacBook-Pro-2.local>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
Co-authored-by: Ben Wilson <82120899+optimisticben@users.noreply.github.com>
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Tim Myers <timmyers09@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Annie Ke <annieke8@gmail.com>
Co-authored-by: platocrat <37757724+platocrat@users.noreply.github.com>
Co-authored-by: Matt Masurka <m.masurka@gmail.com>
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
Co-authored-by: Alejandro Santander <Palebluedot@gmail.com>
* Re-apply key changes on top of optimism most current develop
* Add docker-compose-replica.yml (#109)
* Create docker-compose-replica.yml
* Add replica service
* Update docker-compose-omgx-replica.yml
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* fix linter; patch gethl2
* configure the deployer correctly
* fix proposer / batch submitter
* update chainIDs
* update rpc test
* Create README_OMGX.md
* upstream - needs more work
* Adds delay to watcher (#1159)
* Adds delay to watcher
* Simplifies delay
* Adds changeset
* Fix wallet test
* Fix deployment test
* Add Python
* Update Dockerfile.omgx_monorepo
* Remove package-lock
* fix: bind dtl functions for missing event codepath (#1161)
* dtl: bind this in L1 missing element error handlers
* dtl: add additional logline
* chore: add changeset
* dtl: add more metrics
* dtl: use counter instead of gauge
Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
* fix: remove 'editor.formatOnSave' from global settings' (#1163)
* merge conflicts
* Update pre-commit
* Version Packages (#1167)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* minor
* Update pre-commit
* Fix wallet test (#119)
* Fix wallet test
* Fix deployment test
* Add Python
* Update Dockerfile.omgx_monorepo
* Remove package-lock
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* Reapply standard changes on top of current develop
* Update package.json
* doc: add notes for releasing new versions with changesets (#1166)
* Bind correct object to method handler in DTL (#1168)
* fix: bind correct object to method handler
* build: add changeset
* Version Packages (#1169)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Fix web wallet
* Fix integration test (#124)
* Fix integration test (#125)
* Fix integration test
* Fix integration test
* Fix wallet_react
* Fix lint test
* Remove package-lock
* Update integration.yml
* Fix wallet deployer
* Collect docker log
* Fix l1-l2-deposit-withdrawal test
* Fix sync test
* Add chainID to deployer config
* make sync tests dispatch only
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* Add short contribution section to primary README (#1157)
* Add short contribution section to primary README
* Update README.md
* fix: prevent batch submitter from submitting batches if low on ETH
* build: add changeset
* Eslint ignore the hardhat folder
* Update README.md
* Beginning to add working examples
* hardhart and waffle example tests
* document/check waffle
* test l1-l2 example
* add patch-package
* Update package.json
* build: ensure lint only staged files on commit
* refactor: do not run --fix on lint-staged
* refactor: *.{ts,js} for eslint regex
* l2geth: rollup client explicitly checks for >= 400 errors
* l2geth: sync service retries connection to remote server
* l2geth: test errors returning from remote
* chore: add changeset
* syncservice: nit
* feat[message-relayer]: add easy relay tool
* chore: add changeset
* upkeep[monorepo]: add changeset info to README
* merge conflict squash
* Daily sync up (#137)
* build: ensure lint only staged files on commit
* refactor: do not run --fix on lint-staged
* refactor: *.{ts,js} for eslint regex
* l2geth: rollup client explicitly checks for >= 400 errors
* l2geth: sync service retries connection to remote server
* l2geth: test errors returning from remote
* chore: add changeset
* syncservice: nit
* feat[message-relayer]: add easy relay tool
* chore: add changeset
* upkeep[monorepo]: add changeset info to README
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Kelvin Fichter <kelvin@optimism.io>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* build: set up eslint prettier correctly
* style: run yarn lint --fix at root
* build: add necessary packages to workspace root
* build: remove --format stylish
* build: set semvery ranges to match across packages
* build: set up prettierrc.js for monorepo
* refactor: rename Range to BlockRange
* build: set up correct working directories
* build: set up lint:fix to use eslint not prettier
* style: run lint:fix on all code
* build: remove prettier extension recommendation
* style: update configuration to include babel-eslint for .js linting
* build: set concurrency to 1 to prevent git add errors on lerna lint
* github actions: bump geth CI golang version
* fix(contracts): prevent L2->L1 calls to system contracts
* Update message relayer fast contracts (#139)
* prepare for wallet reorg
* Create yarn.lock
* fix hardhat bug
* merge conflict resolve
* daily sync up (#141)
* build: set up eslint prettier correctly
* style: run yarn lint --fix at root
* build: add necessary packages to workspace root
* build: remove --format stylish
* build: set semvery ranges to match across packages
* build: set up prettierrc.js for monorepo
* refactor: rename Range to BlockRange
* build: set up correct working directories
* build: set up lint:fix to use eslint not prettier
* style: run lint:fix on all code
* build: remove prettier extension recommendation
* style: update configuration to include babel-eslint for .js linting
* build: set concurrency to 1 to prevent git add errors on lerna lint
* fix(contracts): prevent L2->L1 calls to system contracts
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: ben <ben@pseudonym.party>
* Add Factory contract for creating standard ERC20 tokens
compliant with the standard bridge
* Disallow 0 address for l1 token when creating l2 standard token
* Fix linting issue
* Add deployment script for the L2 token factory
* Fix deploy script OVM_L2StandardTokenFactory constructor params
* Add changeset
* Cleanup deployment script for OVM_L2StandardTokenFactory
and fix a solidity linting error
* refactor(integration): Add clarity to the expectApprox function signature
* fix: skip codechecks for PRs from external repos
* DRAFT move react wallet and the contracts to more clear folders (#138)
* DRAFT move react wallet and the contracts to more clear folders
* merging the axios integration chagnes
* updated the message-relayer-fast contracts
* integrate message-relayer-fast into standard dockers
* Dockerize the message-relayer-fast
* update Readme.md
* remove duplicated contracts - just keep everything in /contracts
* add deploy for fast messenger
* message-relayer-fast testing
* Update serve.sh
* Delete yarn.lock
* Update constants.ts
* Create yarn.lock
* Update constants.ts
* Update function-manipulation.spec.ts
* increase the retries and other minor fixes
* Improved documentation
* fix omgx integration tests
* Update omgx-integration.yml
* integration test remove duplicated tests
* Fix units test configuration
* Update docker-compose-omgx-services.yml
* integration test setup fixes
* fix wallet integration test
* fix for crash on return
* integration tests for `message-relayer-fast`
* Update env.ts
* Autodeploy Token Bridges
* Update wallet contracts
* Update utils.ts
* improve omgx integration tests
* Add address manager address to GH actions for now
Co-authored-by: sahil kashetwar <>
Co-authored-by: Sahil k <sahil@enya.ai>
Co-authored-by: cby3149 <cby3149@outlook.com>
* merge conflicts
* GH actions regular changes
* husky
* Daily sync up (#144)
* build: set up eslint prettier correctly
* style: run yarn lint --fix at root
* build: add necessary packages to workspace root
* build: remove --format stylish
* build: set semvery ranges to match across packages
* build: set up prettierrc.js for monorepo
* refactor: rename Range to BlockRange
* build: set up correct working directories
* build: set up lint:fix to use eslint not prettier
* style: run lint:fix on all code
* build: remove prettier extension recommendation
* style: update configuration to include babel-eslint for .js linting
* build: set concurrency to 1 to prevent git add errors on lerna lint
* github actions: bump geth CI golang version
* fix(contracts): prevent L2->L1 calls to system contracts
* Add Factory contract for creating standard ERC20 tokens
compliant with the standard bridge
* Disallow 0 address for l1 token when creating l2 standard token
* Fix linting issue
* Add deployment script for the L2 token factory
* Fix deploy script OVM_L2StandardTokenFactory constructor params
* Add changeset
* Cleanup deployment script for OVM_L2StandardTokenFactory
and fix a solidity linting error
* refactor(integration): Add clarity to the expectApprox function signature
* fix: skip codechecks for PRs from external repos
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: ben <ben@pseudonym.party>
Co-authored-by: elenadimitrova <elena@arenabg.com>
Co-authored-by: Reggie Gomez <reggieag@gmail.com>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* docker: pin to alpine 3.13 for l2geth
A bug has appeared when older versions of Docker are used to build
alpine based images in alpine version 3.14. To prevent this problem
from happening to the users, this PR pins the version to 3.13.
The observed problem is that `make` cannot run any command and
the error message states `Operation not permitted.` Removing
`make` was one way to solve the problem but that would increase
the diff from upstream geth.
See these links for details:
https://github.com/alpinelinux/docker-alpine/issues/182
https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.14.0
* fix: update statement for skipping codechecks
* contracts: add set-l2-gasprice task
This task allows a user to update the L2 gas price using hardhat.
An example of doing so would be:
```bash
$ export CONTRACTS_DEPLOYER_KEY=0x..
$ CONTRACTS_RPC_URL=https://kovan.optimism.io npx hardhat set-l2-gasprice \
--l2-gas-price 1
```
This hardcodes the predeploy address of the `OVM_GasPriceOracle` smart
contract and the Owner must be used to do the updating, otherwise the
transaction will revert.
* removed unused functions from core utils
* [added] changeset
* next gen integration tests for the OMGX stack (#149)
* next gen integration tests for the OMGX stack
* finish first pass integration test outline
* move LP tests to the `message-relayer-fast`
* Update omgx-integration.yml
* add more tests to message-relayer-fast
* connect up the .env variables
* hard code URIs
* Update utils.ts
* Update omgx-integration.yml
* fix - should have been 8080
* Update omgx-integration.yml
* which address to use?
* Update omgx-integration.yml
* removing not needed code
* remove superfluous logging code
* Update utils.ts
* Update utils.ts
* additional comments and formatting improvements
* fix: use older changes on tests (#152)
* fix: use older structure
* correct messenger
* LP fees on the correct side
* correct messenger
* rearrange depl order
Co-authored-by: Souradeep Das <dsouradeep2@gmail.com>
* Update README_OMGX.md (#150)
Refactored some changes and added some comments I thought might be helpful for people.
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* tests: re-enable all tests (#155)
* re-enable all tests
* re-enable all tests
* Add solhint to contracts package
* Turn off compiler-version rule in solhint
* Add suggestions by @maurelian
https://github.com/ethereum-optimism/optimism/pull/1033#issuecomment-866146467
* Change solhint output formatting to table
* Disable contract-name-camelcase rule in solhint
* Fix max-line-length linting issues in contracts
* Fix quotes linting issues in contracts
* Remove private-vars-leading-underscore rule in solhint
* Add contracts linting to github action
* Fix for hardhat account balance parsing
* Disable generating the bytecodeHash in hardhat contract artifacts
* Review fixes
* Fix review notes
* Fix smockit for a change in hardhat ^2.4.0
which changes the way it parses errors from returndata
Fix provided by @smartcontracts
* dtl: configurable gas price backend
Adds a new config option `--l1-gas-price-backend` or
`DATA_TRANSPORT_LAYER_L1_GAS_PRICE_BACKEND` that can be set to `l1` or
`l2`. This impacts the behavior of the HTTP endpoint `GET /eth/gasprice`
by changing what is queried to return the L1 gas price. The L1 gas price
is required to compute the L2 fee since the L2 fee consists of
`L1 gas price * L1 gas used + L1 gas price * L2 gas limit`. If the L1
gas price differs too much between different L2 providers, then users
using `eth_estimateGas` may submit transactions with too low of a fee
and be unable to submit transactions to the sequencer.
By configuring the DTL to use L2 as the L1 gas price backend, it will
call the Sequencer's RPC endpoint `rollup_gasPrices` which returns the
L1 and L2 gas prices from the point of view of the sequencer. The L2 gas
price exists in the state, so that will always be the same between the
sequencer and any replicas. The L1 gas price does not live on chain, so
querying for it from the sequencer directly will ensure that users send
transactions with a fee that is large enough.
Also adds eth/gasprice info to README.
* Remove bl wl service (#154)
* replace `bl-wl` with direct calls the `omgx_deployer`
* Update docker-compose-omgx-services.yml
* Update up_local.sh
* Add CORS headers to http servers
* updated frontend to use the two new HTTP servers for the addresses
* update webwallet to work with both local and rinkeby
* Add missing .env variables to GH actions
* re-enable docker tages
* re-enable wallet transaction history
* Update up_local.sh
* Update up_local.sh
* Add flag to omgx_deployer to only serve addresses w/o deploying new contracts
* Update docker-compose-omgx-services.yml
* Add back tagging system and improved reliability of GH actions
* removed commented out service
* add rinkeby token addresses (#161)
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* fix: lint deploy-l2 folder in contracts
* Add AWS integration (#159)
* Add AWS integration
* Remove artifacts
* updated ops_omgx/README.md and added .github/workflows/deploy2aws-integration.yml and .github/workflows/push2aws.yml
* add automated provision and deletion of an ec2 instance for running the integration tests
Co-authored-by: Petar Denev <pdenev@gmail.com>
* fix: update CI to avoid running out of memory
* Version Packages
* ci: release latest image tags on release
* feat: update README to include info about rebasing
* Add op_exporter for sequencer metrics and health endoint
Added metric for sequencer health
Added Dockerfile for op_exporter;
Fixed Dockerfile path
* merge conflicts
* re-comment out the usual GH actions
* feat[integration-tests]: make tests work for prod networks
* chore: add changeset
* Increase client_body_buffer_size for rpc-proxy
Added client_max_body_size to rpc-proxy config
* l2geth: use `hexutil.Big` to prevent overflows
The `RollupClient` decodes the JSON from the DTL as a uint64,
this updates it to be a `big.Int`
Includes a test for the value field that ensures it does not overflow
* ci(contracts): only run codecov if contracts package is modified
In order to skip running the CodeCov job when it isn't relevant, a new job was added to the ts-packges workflow. For a PR, this job identifies all the files modified between the base branch and the tip of the PR branch, and writes to a variable which can be used to decide if subsequent jobs should run.
Github Actions provides an easy method for achieving this at the level of a workflow, but not for specific jobs within a workflow.
* Version Packages
* chore(ci): Skip codecov on push events
* feat: add workflow for running SNX test suite
* go: implement gasprices package
The `gasprices` package implements the logic that updates
L2 gasprices on the Optimistic Ethereum Network.
Co-authored-by: Karl Floersch <karl@karlfloersch.com>
* gas-oracle: implement and test
This commit adds the `gas-oracle` which is an offchain entity
that sends transactions to L2 to update the gas price. It must
be configured with a private key as the `OVM_GasPriceOracle`
is owned.
The `gas-oracle` is added to the changesets setup.
Tests are included as well as CI. Dockerizing will happen
in a follow up PR.
* gas-oracle: ci + docker build/publish
Adds a dockerfile for the `gas-oracle` as well as adding it as
a service in the `docker-compose.yaml`. It is not enabled by
default due to memory issues in CI already happening occasionally
where the integration tests are oom killed.
The `gas-oracle` is configured with a key that owns the
`OVM_GasPriceOracle`.
This PR adds the `gas-oracle` to the Github Actions
workflow that is responsible for publishing the docker images.
* Add replica (#169)
* fix: update erc20 deposits (#166)
* fix: update erc20 deposits
* fix: auto default token
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* resolve merge conflicts
* Update docker-compose.yml
* Update docker-compose.yml
* [pull] develop from ethereum-optimism:develop (#164)
* contracts: add set-l2-gasprice task
This task allows a user to update the L2 gas price using hardhat.
An example of doing so would be:
```bash
$ export CONTRACTS_DEPLOYER_KEY=0x..
$ CONTRACTS_RPC_URL=https://kovan.optimism.io npx hardhat set-l2-gasprice \
--l2-gas-price 1
```
This hardcodes the predeploy address of the `OVM_GasPriceOracle` smart
contract and the Owner must be used to do the updating, otherwise the
transaction will revert.
* Add op_exporter for sequencer metrics and health endoint
Added metric for sequencer health
Added Dockerfile for op_exporter;
Fixed Dockerfile path
* feat[integration-tests]: make tests work for prod networks
* chore: add changeset
* Increase client_body_buffer_size for rpc-proxy
Added client_max_body_size to rpc-proxy config
* l2geth: use `hexutil.Big` to prevent overflows
The `RollupClient` decodes the JSON from the DTL as a uint64,
this updates it to be a `big.Int`
Includes a test for the value field that ensures it does not overflow
* ci(contracts): only run codecov if contracts package is modified
In order to skip running the CodeCov job when it isn't relevant, a new job was added to the ts-packges workflow. For a PR, this job identifies all the files modified between the base branch and the tip of the PR branch, and writes to a variable which can be used to decide if subsequent jobs should run.
Github Actions provides an easy method for achieving this at the level of a workflow, but not for specific jobs within a workflow.
* Version Packages
* chore(ci): Skip codecov on push events
* feat: add workflow for running SNX test suite
* go: implement gasprices package
The `gasprices` package implements the logic that updates
L2 gasprices on the Optimistic Ethereum Network.
Co-authored-by: Karl Floersch <karl@karlfloersch.com>
* gas-oracle: implement and test
This commit adds the `gas-oracle` which is an offchain entity
that sends transactions to L2 to update the gas price. It must
be configured with a private key as the `OVM_GasPriceOracle`
is owned.
The `gas-oracle` is added to the changesets setup.
Tests are included as well as CI. Dockerizing will happen
in a follow up PR.
* gas-oracle: ci + docker build/publish
Adds a dockerfile for the `gas-oracle` as well as adding it as
a service in the `docker-compose.yaml`. It is not enabled by
default due to memory issues in CI already happening occasionally
where the integration tests are oom killed.
The `gas-oracle` is configured with a key that owns the
`OVM_GasPriceOracle`.
This PR adds the `gas-oracle` to the Github Actions
workflow that is responsible for publishing the docker images.
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Ben Wilson <bwilson@optimism.io>
Co-authored-by: Kelvin Fichter <kelvin@optimism.io>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: Ben Wilson <82120899+optimisticben@users.noreply.github.com>
Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Karl Floersch <karl@karlfloersch.com>
* Update docker-compose.yml
* adding l1-l2 test ecs scheduled task that does verify communication between L1 and L2 and L2 to L1 (#167)
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* Update docker-compose.yml
* daily update (#170)
* contracts: add set-l2-gasprice task
This task allows a user to update the L2 gas price using hardhat.
An example of doing so would be:
```bash
$ export CONTRACTS_DEPLOYER_KEY=0x..
$ CONTRACTS_RPC_URL=https://…
* fix: import path (#1141)
* fix: correct import path for altered contract path
* chore: add changeset
* refactor: improve logging for batch submission timeout scenarios (#1120)
* Fixed CrossDomainMessenger name (#96)
* Add highest L1 and L2 block number Gauge metrics to DTL (#1125)
* build: add prom-client to data-transport-layer
* refactor: thread metrics more carefully through data-transport-layer; add two new metrics
* style: fix some style issues
* refactor: make metrics mandatory
* refactor: move metrics register code to top of file
* style: apply linting
* refactor: move promethesus initialization after express
* refactor: move promBundle call up, provide registry
* build: add changeset
* Improve Watcher ability to find transactions (#1107)
* remove listeners and use loop to find tx receipt
* add yarn ready
* moved filters inside loop
* [added] changeset
* Add minimal vscode settings and extensions (#1109)
* chore: add minimal vscode settings and extensions
* chore: Add "files.trimTrailingWhitespace" to vscode native config
* chore: replace vscode prettier plugin with eslint plugin
* fix[contracts]: remove part of MultiMessageRelayer deployment (#1144)
* fix[contracts]: remove part of MultiMessageRelayer deployment
* chore: add changeset
* Define L1 Starting block via OwnershipTransferred rather than AddressSet (#1129)
* Update service.ts
* Create thirty-years-look.md
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* Easy fix for broken watchers (#1121)
* Easy fix for broken watchers
* Ran yarn changeset
Co-authored-by: Liam Horne <liam@lihorne.com>
* feat: go packages (#1111)
* go: add utils module
* readme: update
* Version Packages (#1094)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* build: add husky pre-commit hook to lint (#1146)
* feat[contracts]: add mainnet deploy script (#1147)
* Add mainnet deploy script
* Update mainnet.sh
* Address PR review feedback
* feat: mainnet contract deployment 0.4.0 (#1148)
* feat: mainnet contract deployment 0.4.0
* feat: deployments readme
* chore: add changeset
* contracts: remove dead contract
* contracts: remove dead config
* tests: fix to not test for old contracts
* feat: `rollup gasPrices` RPC endpoint (#1136)
* feature: l2geth endpoint
* chore: add changeset
Co-authored-by: Liam Horne <liam@lihorne.com>
* Adds l2 standard bridge to contracts markdown file (#1151)
* Version Packages (#1150)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Add more info about our branching strategy to the README (#1114)
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Remove references to OVM_L1ETHGateway in deployments and readme (#1119)
* Keep the user logged in after changing chain (#99)
* Keep the user logged in after changing chain
* Update Nft.js
* Detect if user is in the wrong chain
Co-authored-by: cby3149 <cby3149@outlook.com>
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* Merge conflics resolve (#110)
* wip
* gethl2
* wip
* batch submitter
* core utils
* DTL
* message relayer
* contracts
* wip
* Update service.ts
* DTL
* messaage-relayer
* Update yarn.lock
* final 5 files
* [pull] develop from ethereum-optimism:develop (#91)
* chore: reduce hardhat timeout to 20 seconds (#968)
* fix: force LF line endings for scripts to avoid docker problems on Windows (#974)
* fix: use correct line endings for windows
* chore: add changeset
* refactor[contracts]: Turn ExecutionManagerWrapper into a predeployed contract (#808)
* wip: Started working on L2 contract testing revamp
* test: clean tests for ProxyEOA
* style: clean imports for ProxyEOA tests
* test: port tests for ECDSAContractAccount
* fix tests and add wrapper to dump
* fix: add em wrapper to l2 deploy
* ffix: add comments to wrapper contract
* fix: add more comments
* fix: add smock comment for unbind
* Update packages/smock/src/smockit/binding.ts
* maintenance[contracts]: use dashes in chain container names (#819)
* maintenance: use dashes in chain container names
* chore: add changeset
* feat[contracts]: temporarily disable EOA upgrades (#857)
* feat[contracts]: disable eoa upgrades temporarily
* chore: add changeset
* Update OVM_ProxyEOA.sol
* fix: turn upgrade into a noop
* lint: fix
* feat[contracts]: Update Lib_AddressManager.AddressSet event to speed up data transport layer (#820)
* feat: update and improve AddressSet event
* chore: add changeset
* Update Lib_AddressManager.sol
* Reduce gas costs of deposits (#667)
* Remove messageNonce from BaseCrossDomainMessenger and use CTC queue lenght instead
Remove Abs_BaseCrossDomainMessenger and restore dedicated nonce generation in OVM_L2CrossDomainMessenger
Fix typo
* Remove sentMessages mapping from L1CrossDomainMessenger storage
and use the nonce to check for existence of replayed transaction
* Refactor out common library function for getting cross domain calldata
* Post rebase fixes
* Use the queueIndex to check the transaction was enqueued
* Fix tests for L1CrossDomainMessenger.replayMessage
Also make that test work with an actual CanonicalTransactionChain implementation rather than a smock
* Lint fixes
* Optimise the resolve calls into the AddressManager lib
* Rename the nonce parameter to be clear
* Update test name
Co-authored-by: ben-chain <ben@pseudonym.party>
* Rename getXDomainCalldata to encodeXDomainCalldata to match the new Lib_CrossDomainUtils
Co-authored-by: ben-chain <ben@pseudonym.party>
* optimism: bump gaslimit to 10 million #870 (#871)
* optimism: bump gaslimit to 10million
* chore: add changeset
* optimism: bump max gaslimit to 10 mil
* chore: add changeset
* chore: remove unnecessary changeset
* chore: remove unnecessary changeset
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* fix: use correct contract name in tests (#921)
* fix: disable upgradability from ECDSA Account (#885)
* l2geth: remove `SignatureHashType` (#752)
* l2geth: remove tx type
* l2geth: no longer parse type in rollup client
* chore: add changeset
* chore: remove extra sighash params
* fix: do not check txtype in integration tests
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* feat[contracts]: introduce OVM_GasPriceOracle (#912)
* feat[contracts]: congestion price oracle
* chore: add changeset
* contracts: gas price oracle (#917)
* contracts: gas price oracle
* tests: update
* fees: fix tests
* contracts: simplify gas price oracle
* lint: fix
* test: execution price is at the 1st storage slot
* chore: rename predeploy to GasPriceOracle
* chore: rename gas price oracle test name
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* fix: configure max gas limit to 11m (#928)
Uniswap V3 contracts require that, otherwise they throw call exceptions at deployment
* Consolidate Predeploy Addresses (#931)
* added library for predeploy addresses
* refactor tests and other packages to use exported predeploys
* revert library usage in OVM_ECDSAContractAccount
* lint
* added newline
* fixed address typos
Co-authored-by: rajivpo <rajivpatel-oconnor@Rajivs-MacBook-Pro-2.local>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* chore: remove yarn-error.log and gitignore it (#956)
* feat[contracts]: Replace Lib_RingBuffer with a much simpler Lib_Buffer (#821)
* feat[contracts]: replace Lib_RingBuffer with a simpler Lib_Buffer
* chore: changeset
* test: add tests for Lib_Buffer
* lint: fix
* test: add extra coverage for Lib_Buffer
* Update packages/contracts/contracts/optimistic-ethereum/libraries/utils/Lib_Buffer.sol
Co-authored-by: ben-chain <ben@pseudonym.party>
* add some extra comments
Co-authored-by: ben-chain <ben@pseudonym.party>
* fix(contracts): import predeploys (#982)
* fix(contracts): import predeploys
* fix: lint
* feat: add hardhat deploy instructions to readme (#965)
* feat: add deployment instructions to readme
* Add changeset
* fix style
* Update README.md
* feat: fees v2 (#976)
* l2 geth: new fee logic
* l2 geth: migrate to fees package
* core-utils: new fee scheme
* chore: add changeset
* l2geth: delete dead code
* integration-tests: fix typo
* integration-tests: fixes
* fees: use fee scalar
* lint: fix
* rollup: correct gas payment comparison
* fix(integration-tests): do not hardcode gas price
* core-utils: update with new scheme
* l2geth: refactor rollup oracle
* l2geth: clean up DoEstimateGas
* l2geth: implement latest scheme
* tests: fix up
* lint: fix
* l2geth: better sycn service test
* optimism: rename to TxGasLimit
* fee: fix docstring
* tests: fix
* variables: rename
* l2geth: prevent users from sending txs with too high of a fee
* integration-tests: fix import
* integration-tests: fix type
* integration-tests: fix gas limits
* lint: fix
* l2geth: log error
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* Add static analysis action (#848)
* Add static analysis github action
setup python and install slither
* Add nvmrc file for setting node to v14.17
* Update slither command run to link missing contract packages from monorepo root
* Add steps for installing dependencies
* Add yarn build step to github action
* Enable colour in github action for static analysis
* Disable certain detectors
* Ensure slither does not fail build
* Add instructions on running static analysis to monorepo readme
* build(deps): bump ws from 7.4.4 to 7.4.6 in /ops/docker/hardhat (#987)
Bumps [ws](https://github.com/websockets/ws) from 7.4.4 to 7.4.6.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.4.4...7.4.6)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix[l2geth]: fix accidental merge conflict (#994)
* feat[message-relayer]: relay tx generator (#952)
* feat[message-relayer]: relay tx generator
* whoops, I burned our infura key
* fix minor bug
* add comments
* add more comments and clean stuff up
* add empty test descriptions
* add tests
* move smock to dev deps
* chore: add changeset
* minor cleanup to merkle tree proof function
* use bignumber math to avoid nested await
* use a better interface
* minor fixes and simplifications
* backwards compatible dtl syncing (#986)
* kovan: fix attempt
* kovan: db fix
* kovan: types are strings from db
* l2geth: parse things as strings
* chore: add changeset
* dtl: also stringify the range query
* geth: dereference
* geth: assign err
* dtl: handle null
* dtl: fix unit tests
* fix[smock]: fix broken call assertions for overloaded functions (#996)
* fix[smock]: fix broken call assertions for overloaded functions
* chore: add changeset
* minor correction and add a test
* add a test for non-overloaded functions
* fix[message-relayer]: fix failing test because of merge with develop (#1000)
* fix[message-relayer]: remove spreadsheet mode (#998)
* fix[message-relayer]: remove spreadsheet mode
* chore: add changeset
* Lower local rollup timestamp refresh (#985)
* update rollup timestamp refresh
* increase refresh time to 5s
* feat: fees v3 (#999)
* core-utils: fee impl v3
* l2geth: fees v3 impl
* integration-tests: update for fees v3
* chore: add changeset
* fix: typo
* integration-tests: fix and generalize
* fees: update fee scalar
* l2geth: check gas in the mempool behind usingovm
* tests: fix up
* l2geth: remove dead var
* truffle: fix config
* fix: remove dead coders (#1001)
* chore: delete dead coders
* chore: add changeset
* dtl: remove dead imports
* core-utils: delete dead tests
* batch-submitter: remove txtype
* chore: add changeset
* docs[message-relayer]: add a README and improve the interface for generating proofs (#1002)
* docs[message-relayer]: add basic docs and clean up an interface
* chore: add changeset
* dtl: log error stack for failed http request (#995)
* dtl: log error stack for failed http request
* chore: add changeset
* Add rpc-proxy service for whitelisting JSON RPC methods to the sequencer. (#945)
* Add healthcheck endpoint for rpc-proxy
Added ethereum-nginx-proxy source
updated README and docker image build
* Check ETH_CALLS_ALLOWED is set, clean up comments, remove old Dockerfile
* Pass additional information across domains via token gateways (#824)
* feat(contracts): add from and data args to L1ERC20Gateway
fix(integration): add gasLimit to fundUser
refactor(contracts): add data to gateway events
add changeset
fix(integration): provide data in outboundTransfer
refactor(contracts): reset Abs_L2TokenGateway to Abs_L2DepositedToken
refactor(contracts): fix mismatched names
* feat[contracts]: add custom gas arg to gateway
fix(contracts): take max of user vs. default gas
* fix(integrations): update ovm-eth function call
* fix(integration): remove unecessary explicit gasLimit
* test(contracts): 32kb transfer, 9MM gas
* fix(contracts): fixup comment, bytes arg last
* fix(integration): args order in integrations
* fix(contracts): remove unused L2 gas arg
* fix(contracts): limit data that can be passed to L2
* fix(integration): better tests for data length
* test: check for error on too large data
* Experimental: specify gaslimit in before hook
* fix(integration): add l2 gas argument
* fix: increase gas on fundUser
* fix(contracts): remove duplicate max size limit
* fix(integration): fine tune gas amounts
* lint
* fix: large data test
* fix(integration): set gas closer to real cost
* fix(contracts): remove unused bridge variables
These variables were the default gas amounts for cross domain messages
* fix(contracts): Reorder args
Place dynamic length args last
* fix(integration): update estimateGas values
* fix(integration): reset eth withdraw estimate to 21000
* fix(integration): update expected gas amount
* fix(integration): reduce gas amount for ETH withdraw
* More consistent style for Constant values (#991)
* chore(contracts): make container addresses be constants
chore(contracts): consistent style for constant vars
* chore(contracts): add internal on predeploy constants
* feat: deployment config for fee oracle contract (#936)
* feat[contracts]: add GasPriceOracle w/o predeploy
Based on #912
* feat[contracts]: congestion price oracle
* chore: add changeset
* contracts: gas price oracle (#917)
* contracts: gas price oracle
* tests: update
* fees: fix tests
* contracts: simplify gas price oracle
* lint: fix
* test: execution price is at the 1st storage slot
* chore: rename predeploy to GasPriceOracle
* chore: rename gas price oracle test name
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* Add an L2 deploy script for gas oracle contract
* Add a kovan deployment artifact
* Add deployment to readme
* Add extra validation & initial execution price
* Update README.md
* Fix execution price logic
* Perform new deployment with final contract
* contracts: better require in ovm gas price oracle
* Deploy L2GasPriceOracle
* Update contract to use new fee logic & rename to gas
* Deploy updated contract
* Fix lint
* gas price oracle: do not restrict gas price
* gas price oracle: new deployment
* tests: delete dead test
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* ops: expose debug namespace (#1007)
* develop merge fixes
* refactor[l2geth]: queue origin type (#975)
* refactor: queueOrigin type
* Convert queueOrigin to uint8 in encode
* Add changeset
* Regenerate json marshall
* style: combine lines
* Add Stringer for QueueOrigin
* Turn QueueOrigin into uint8
* l2geth: gen tx meta fix
* l2geth: gen tx meta fix
* lint
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
* fix(sync-service): prevent underflows (#1015)
* fix(sync-service): prevent underflows
* chore: add changeset
* chore: remove dead confirmation depth
* chore: remove eth1conf depth from rollup config
* test: remove duplicate value in array (#1014)
* ci: tag docker image for canary with abbreviated GITHUB_SHA (#1006)
* ci: tag docker image for canary with abbreviated GITHUB_SHA
* ci: update from 6 bytes to 8 bytes of abbreviation
* refactor: improve logging for transactions being submitted to chain with gasPrice (#1016)
* refactor: improve logging for transactions being submitted to chain with gasPrice
* lint: apply lint autofixes
* dtl: remove stringify from db logic + more overflow protection (#1010)
* dtl: remove stringify from db logic
* l2geth: overflow protection
* dtl: overflow protection
* chore: add changeset
* ci: upload logs for failed integration tests (#1020)
* fix(dtl): improve slow blocking JSON parsing that occurs during l2 sync (#1019)
The use of eth_getBlockRange returns a large response which is very
slow to parse in ethersjs, and can block the event loop for upwards
of multiple seconds.
When this happens, incoming http requests will likely timeout and fail.
Instead, we will parse the incoming http stream directly with the bfj
package, which yields the event loop periodically so that we don't
fail to serve requests.
* fix: lint errors in dtl (#1025)
* fix[dtl]: fix dtl bug breaking verifiers (#1011)
* fix[dtl]: fix dtl bug breaking verifiers
* tweaks so tests pass
* chore: add changeset
* fix: deterministic blockhashes (#1032)
* config: set etherbase
* l2geth: add deterministic clique key
* l2geth: default value
* chore: add changeset
* test: add sync test for deterministic blockhash
Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
* Version Packages (#978)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* ci: add sync test's own workflow (#1031)
* fix(dtl): incorrect parsing of eth_getBlockRange result (#1037)
* Version Packages (#1045)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix: no gas refund (#1043)
* l2geth: remove the gas refund
* chore: add changeset
* refactor[contracts]: remove one-off GasPriceOracle deployment file (#1046)
* refactor[contracts]: remove one-off gpo deployment
* chore: add changeset
* feat[contracts]: introduce new L1ChugSplashProxy contract (#1009)
* feat[contracts]: add L1ChugSplashProxy
* improve comments slightly
* start adding tests
* add more tests
* make the system pausable
* added another test
* add some extra comments
* Update packages/contracts/test/contracts/chugsplash/L1ChugSplashProxy.spec.ts
Co-authored-by: Maurelian <maurelian@protonmail.ch>
* Update packages/contracts/test/contracts/chugsplash/L1ChugSplashProxy.spec.ts
Co-authored-by: Maurelian <maurelian@protonmail.ch>
* chore: add changeset
* address review feedback
Co-authored-by: Maurelian <maurelian@protonmail.ch>
* feat[contracts]: add sequencer fee wallet (#1029)
* wip: first draft of the fee wallet
* add fee wallet to dump
* rename to sequencer vault
* add L1 fee wallet to geth config
* add unit tests
* fix geth linting error
* add a basic integration test
* fix broken integration test
* add test for correct storage slot
* add integration test for fee withdrawal
* fix typo in integration tests
* fix a bug bin integration tests
* Update OVM_SequencerFeeVault.sol
* fix bug in contract tests
* chore: add changeset
* fix bug in contract tests
* build(deps): bump glob-parent from 5.1.1 to 5.1.2 (#1036)
Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/gulpjs/glob-parent/releases)
- [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2)
---
updated-dependencies:
- dependency-name: glob-parent
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: Liam Horne <liam@lihorne.com>
* fix: predeploy gasprice oracle (#1039)
* l2geth: delete extra config options
* l2geth: stop using extra config options
* l2geth: more stop using extra config options
* chore: add changeset
* l2geth: add new config for gpo owner
* chore: add changeset
* l2geth: fix tests
* tests: fix build
* l2geth: optimize loops (#1027)
* l2geth: optimize loops
* l2geth: stop ticker when done
* l2geth: don't wait for first tick
* chore: add changeset
* Enable custom tagging of release docker image (#1048)
* ci: enable custom tagging of release docker image
* ci: refactor to add prerelease prefix for secuirty
* doc: typo
* ci: fix indentation issue of canary workflow
* ci: fix typo with GITHUB_SHA
* fix: typo in USE_HARDHAT config (#1023)
* fix: abi encoded tx (#1049)
* contracts: don't double rlp decode
* chore: add changeset
* lint: fix
* deps: update
* linting: cleanup
* feat: contracts: use selector
* fix: contracts: use typescript
* contracts: use interface
* l2geth: bump to go 1.15 (#1058)
* l2geth: bump to go 1.15
* chore: add changeset
* Change monotonicity band-aid code to log warnings not errors (#1060)
* refactor: change monotonicity band-aid code to log warnings not errors
* build: add changeset
* feat(contracts, l2geth): native ETH value support for ovmCALL (#1038)
* feat(contracts): add ovmCALL-types with native value
* add ovmCALLVALUE context
* add ovmBALANCE
* test success and revert cases
* test empty contract case
* chore: lint
* test(integration-tests): ovmCALL-types with value (compiler and wrapper)
* fix ovmDELEGATECALL type, update tests
* add ovmSELFBALANCE
* fix ovmDELEGATECALL jumping to CALL
* chore: lint
* fix(contracts): account for intrinsic gas of OVM_ETH sends
* fix(contracts): merge conflict bug
* fix(contracts): update gas benchmark
* feat(contracts, integration-tests): use new value-compatible compiler
* feat(contracts,l2geth): support value calls in OVM_ECDSAContractAccount
* fix(contracts): ovmDELEGATECALL does not change message context
* feat(contracts): sending value between EOAs
* test(integration-tests): ovmDELEGATECALL preserves ovmCALLVALUE
* test(integration-tests): assert ovmSELFBALANCEs correct
* test(integration-tests): intrinsic gas for eth value calls
* test(integration-tests): update gas values
* chore(contracts): lint
* feat(contracts, l2geth): eth_calls with nonzero value
* chore: minor fixups and comments based on PR feedback
* test(integration-tests): add requested tests from PR reviews
* test(integration-tests): ovmSELFBALANCE is preserved in ovmDELEGATECALLs
* fix(contracts): fix bug where ovmDELEGATECALL could fail if balance was lower than the ovmCALLVALUE
* chore: add changeset
* fix(contracts): update intrinsic gas for worst-case value sends
* chore: address final PR nits/improvements
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
* Add erc1271 support to contract account (#1052)
* add ERC1271 support, failing unit tests
* add integration test for isValidSignature
* remove .only
* lint
* add changeset
* clean up 1271 tests and lint
* switch back to using waffle wallet
* lint
* fix import
* feat[contracts]: slightly better account funding for hardhat accounts (rebased) (#1065)
* feat[contracts]: better account funding for hardhat accounts
* add a sleep to avoid any potential problems
* chore: add changeset
* fix: bug with gas estimation in funding step
* fix: limit to 20 accounts max
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
* Ensure Sentry is correctly set up for DTL and MR (#1054)
* refactor: add logger and metrics to options for BaseService
* refactor: thread sentryOptions through from message-relayer into BaseService
* refactor: ensure DTL Logger is using Sentry for errors
* style: lint base-service.ts
* refactor: init Sentry on batch-submitter too
* refactor: init Sentry on message-relayer too
* refactor: pass in basic logger to MessageRelayerService
* build: provide changeset
* fix: correct usage of use-sentry boolean config
* refactor: appropriately type loggingOptions
* build: add @sentry/node
* build: add @sentry/node to message-relayer and fix linting issue
* Add more logging information to monotonicity violation logs (#1066)
* refactor: log idx of monotonicity violation from batch
* build: add changeset
* temporarily disable hardhat example tests (#1071)
* fix: monotonicity auto healer (#1070)
* fix: monotonicity auto healer
* add: changeset
* Version Packages (#1053)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Standard token bridge (#988)
* Remove abstract token gateway and deposited token implementations
* Further simplification of bridge contracts
* Standart token bridge and L2 token implementation
* Fix spacing
* Implement case when a bad deposit happens to a nonexistent L1<>L2 token pair
* Use SafeMath in common token bridge accounting
* test(contracts): fix finalizeWithdrawal test
* fix(contracts): use SafeERC20 on token deposits
* Rename OVM_L1ERC20Gateway to OVM_L1ERC20Bridge contract
* Rename iOVM_L1ERC20Gateway to iOVM_L1ERC20Bridge contract
* Cleanup gateway to bridge rename
* Better name for the mapping holding l1->l2 deposit amounts
* Use OZ SafeMath
* Rename local variables in OVM_L2DepositedERC20 from gateway to bridge
* Merge ETH and ERC20 bridge contracts
* Rename OVM_L1ERC20Bridge to OVM_L1StandardBridge and fix tests from merging the ETH and ERC20 bridges
* Better name for iAbs_BaseCrossDomainMessenger -> iOVM_CrossDomainMessenger
* Correct the bounce back of deposit sender and recipient properties
* Remove obsoleted event from OVM_L2DepositedERC20
* chore(contracts): change references from ETHGateway to Bridge
* Fix a linting error
* fix(contracts): add bridge to deployer
* Split off ERC20Bridge interface for the purposes
of being reused in custom ERC20 bridges
* Split off interface natspec definitions
* Draft version of OVM_L2DepositedERC20 splitted into a standard L2 erc20: L2StandardERC20 and
a common L2 bridge: OVM_L2StandardBridge
* style(contracts): define L1_ETH_ADDRESS as constant
* test(integration): update interface to use depositETH
* test(contracts): fix OVM_L1StandardBridge tests
* test(contracts): fix L2 Standard Bridge tests
* test(contracts): lint and remove an obsolete test case
* Fix modifier check to comply with the L2 bridge distinction from L2 token
* Simplify address <> interface casting in bridges
* Ensure natspec comments are correct
also add l1 and l2 token params to WithdrawalInitiated event for consistency
* Fix issues in L1 and L2 bridges to ensure
cross domain messages are sent only between the two bridges
also adjusted withdrawals to send to either finalizeETHWithdrawal or finalizeERC20Withdrawal
depending on which asset is being withdrawn
* Remove AddressManager from the L1 standard bridge
* REVERT ME: instruments cross domain enabled
* fix(contracts): remove Address Manager from L1 Bridge
* feat(contracts): make L2 Standard Bridge a predeploy
* WIP: update deployments for standard bridges
* WIP: update deployments for standard bridges
* l2geth: TEMP log contract calls
* chore(l2geth): replace eth gateway with standard bridge
* fix(contracts): make contract-deployment/config work
* WIP fix(integration): update integration tests for bridge
* Remove ovmEth from L1 Standard bridge as obsoleted
* Separate ERC20 standard implementation from L2 bridge
* Formatting fixes
* chore(l2geth): replace eth gateway with standard bridge
* Revert "REVERT ME: instruments cross domain enabled"
This reverts commit d5bb8f8f67974d0a3e65fc000f08858328a4bbbc.
* fix: lint ts
* Implement EIP-165 in the Standard L2 ERC20 token
Also switch that to be based off the OpenZeppelin default implementation plus mint and burn
Additionally remove the obsoleted iOVM_ERC20
* fix(contracts): add deployment check on bridge proxy
fix(contracts): whitespace
fix(contracts): init bridge implementation with non-zero address
* Remove dependency on Ownable contract for the StandardERC20 token on L2
* fix(contracts): update deployment scripts
* fix: lint
* remove debugging code
* fix: correct rpc get balance slot
* restore l2 cross domain messenger
* fix: lint
* Add a test for a non compliant token deposit
* Only allow EOAs to deposit ETH and ERC20
* Add comments and tests for ERC165 implementation
* Decide against using explicit ETH MOCK address as we're not using it for checks
* Fix linting issues
* Add onlyEOAContract restriction to standard bridge withdrawals
* Update codehashes in L2 Standard bridge
* fix(ops): remove unintentionally added file
* feat(contracts): add expectApproxGasCost function
* fix(integration): proper arrayify input on fundUser
* fix(integration): proper gas value checks
* Revert "Add onlyEOAContract restriction to standard bridge withdrawals"
This reverts commit 2713c06ceb2609e4f13718e1034a4d76210d9758.
* fix(contracts): removed unused expectApproxGasCost for now
* fix(contracts): update OVM_SequencerFeeVault for bridge changes
* lint
* Update deployment for L1 Bridge w/ ChugSplash
* Revert "l2geth: TEMP log contract calls"
This reverts commit 21d42259278449f221bf34605162229b3d9d4fa9.
* Apply suggestions from code review
* Apply suggestions from code review
* fix(contracts): deploy with chugsplash proxy
* fix(contracts): add working bridge and chugsplash proxy deployment
* fix(contracts,integration): 500k gas for depositETH
* comment(contracts): describe failed deposit handling on l2
* Apply suggestions from code review
Co-authored-by: ben-chain <ben@pseudonym.party>
* docs: add changeset
* fix(integration): set working l2 gas amount on funduser
* test(integration): add receive() test
* fix(contracts): reset receive to 1.2MM l2 gas
* test(examples): skip l1-l2 example test for now
* fix(contracts): drop hardcoded gas to 500k in receive()
* fix(contracts): use abi.encodeWithSignature
* fix(contracts): resolve merge conflicts
* feat(integration): add expectApprox for flexible gas testing
* fix(integration): fix failing gas tests
* fix: incorrect l2 gas for deposit
* Update utils.ts
* fix(workflow): disable l1-l2 example until npm imports are fixed
* chore: final round of PR review nits and tests
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: ben-chain <ben@pseudonym.party>
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
* fix: comment out codeowners (#1073)
* fix: use predeploy constant lib for em wrapper (#1075)
* fix: use predeploy constant lib for em wrapper
* chore: add changeset
* fix[l2geth]: off-by-one sometimes breaking replica sync (#1082)
* fix[l2geth]: off-by-one sometimes breaking replica sync
* chore: add changeset
* fix(l2geth): Log 'end of OVM execution' correctly (#1080)
* refactor[contracts]: move account contracts to predeploy folder (#1085)
* refactor[contracts]: move account contracts to predeploy folder
* chore: add changeset
* maintenance[contracts]: rename precompiles test folder to predeploys (#1086)
* fix[bs]: disambiguate generic submission errors (#1051)
* fix[bs]: disambiguate generic submission errors
* add cases for errors
* separate out errors from transaction reverts with reasons
* remove extraneous errors
* WETH deposit and withdraw on OVM_ETH (#1083)
* feat(contracts): add no-op WETH9 functionality to OVM_ETH
* working WETH deposit and withdraw + tests
* add changeset
* address PR feedback
* update WETH9 contract implementation
* add fallback to WETH9
* add fallback and revert withdraw test
* update nit comment
Co-authored-by: ben <ben@pseudonym.party>
* Also move the accounts interface to iOVM/predeploys (#1087)
* refactor[contracts]: move account interface to predeploy folder
* chore: add changeset
* Version Packages (#1089)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix: use -z flag for var unset in canary
* Use Eslint instead of Tslint (#1005)
* removed tslint
* forgot to commit files
* made .eslintrc.js consistent for all subdirs and other cleanup
* [removed] includes and files keys from tsconfig.json
* removed file level linting exceptions and added details to line level
* added changeset
* fixed newly introduced linting errors from rebase
* enable json import for batch submitter
* removed ecdsa-coder
* maybe a tsconfig issue?
* Update deploy.ts
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: platocrat <37757724+platocrat@users.noreply.github.com>
* metrics[batch-submitter]: add new batch submitter metrics (#1074)
* metrics[batch-submitter]: add new batch submitter metrics
* chore: changeset
* account for failed submissions
* Fix canary publishing (#1093)
* ci: fix custom docker tag
* ci: use new env file
* ci: use outputs from previous job
* ci: fix headers of jobs
* ci: inherit canary tag from builder
* feat[ci]: upload logs for sync tests if failure (#1098)
* deploy: goerli 0.4.0 (#1099)
* deployments: goerli 0.4.0 rc
* readme: update
* chore: add changeset
* fix[dtl]: defend against RPC provider missing events (#1084)
* fix[dtl]: defend against RPC provider missing events
* chore: add changeset
* respond to review comments
* better error handling for missing handlers
* deploy: kovan v.4.0 rc (#1101)
* deploy: kovan v0.4.0 rc
* chore: add changeset
* readme: update
* maintenance[monorepo]: first pass update to README (#1106)
* maintenance[monorepo]: first pass update to README
Doing some relatively minor updates to the README just to clean things up a bit.
* replying to review comments
* Move the metric prefix string to a label (#1047)
Added changeset and fixes
Changeset to patch
* fix[smock]: add support for hardhat 2.4.0 (#1112)
* fix[smock]: add support for hardhat 2.4.0
* chore: add changeset
* lint: fix
* build(deps): bump hosted-git-info from 2.8.8 to 2.8.9 (#1064)
Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.8 to 2.8.9.
- [Release notes](https://github.com/npm/hosted-git-info/releases)
- [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md)
- [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.8...v2.8.9)
---
updated-dependencies:
- dependency-name: hosted-git-info
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* Misc. small improvements to README (#1115)
* Update README.md
* Update README.md
* fix[dtl]: use the same L2 chain ID everywhere (#1122)
* fix[dtl]: use the same L2 chain ID everywhere
* chore: add changeset
* fix: make sync tests only on workflow dispatch (#1123)
* fix[dtl]: remove old stringification function (#1134)
* fix[dtl]: remove old stringification function
* chore: add changeset
* fix[dtl]: log server errors as ERROR instead of INFO (#1133)
* fix[dtl]: log server errors as ERROR instead of INFO
* chore: add changeset
* Contracts: connectL1Contracts & connectL2Contracts (#713)
* Contracts: connect-contracts
* Trying to resolve build problems
* connect-contracts build working
* Adds artifacts-ovm back to gitignore
* Removes incorrect changes
* Adds copy-artifacts script
* Adds test file (not working yet)
* fix: incorrect contract instantiation
* Improves tests and removes old deployment versions
* Single source of truth for predeploy addresses
* Reverts deployments/README.md
* Makes connect-contracts more DRY
* Adds missing @ethersproject/abstract-signer dependency
* Adds argument evaluation
* Adds L1Contracts and L2Contracts types
* Attempts removing artifacts-ovm again
* Adds webpack config (not working yet)
* build: add artifacts to dist (#776)
* Updates lint rule
* Adds l2 imports
* Fixes dependency tree bug
* Removes webpack stuff
* Fixing package.json issues and adds .DS_Store to gitignore
* Removes test-contracts script
* Reverting script change
* Adds comments
* Adds comment
* Renames deployments folders
* Fixes linting errors
* Generates markdown
* build: add deployments directory to Dockerfiles
* Removes unneeded contracts, improves error handling and tests
* Adds changeset
* yarn.lock
* Removes console.log
* Changes from minor to patch version
* Fixes lint errors
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* fix: prevent overflow in abi encoding (#1135)
* l2geth: prevent overflow in abi encoding to ovm codec tx
* chore: add changeset
* tests: replica syncing (#981)
* [wip] add l2_dtl and replica images
* passing basic dummy tx test
* add erc20 test
* add sync test to ci
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
* fix[relayer]: update exported files list in package.json (#1138)
* fix[relayer]: update exported files
* chore: add changeset
* fix: import path (#1141)
* fix: correct import path for altered contract path
* chore: add changeset
* refactor: improve logging for batch submission timeout scenarios (#1120)
* Add highest L1 and L2 block number Gauge metrics to DTL (#1125)
* build: add prom-client to data-transport-layer
* refactor: thread metrics more carefully through data-transport-layer; add two new metrics
* style: fix some style issues
* refactor: make metrics mandatory
* refactor: move metrics register code to top of file
* style: apply linting
* refactor: move promethesus initialization after express
* refactor: move promBundle call up, provide registry
* build: add changeset
* Improve Watcher ability to find transactions (#1107)
* remove listeners and use loop to find tx receipt
* add yarn ready
* moved filters inside loop
* [added] changeset
* Add minimal vscode settings and extensions (#1109)
* chore: add minimal vscode settings and extensions
* chore: Add "files.trimTrailingWhitespace" to vscode native config
* chore: replace vscode prettier plugin with eslint plugin
* fix[contracts]: remove part of MultiMessageRelayer deployment (#1144)
* fix[contracts]: remove part of MultiMessageRelayer deployment
* chore: add changeset
* Define L1 Starting block via OwnershipTransferred rather than AddressSet (#1129)
* Update service.ts
* Create thirty-years-look.md
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* Easy fix for broken watchers (#1121)
* Easy fix for broken watchers
* Ran yarn changeset
Co-authored-by: Liam Horne <liam@lihorne.com>
* feat: go packages (#1111)
* go: add utils module
* readme: update
* Version Packages (#1094)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* build: add husky pre-commit hook to lint (#1146)
* feat[contracts]: add mainnet deploy script (#1147)
* Add mainnet deploy script
* Update mainnet.sh
* Address PR review feedback
* feat: mainnet contract deployment 0.4.0 (#1148)
* feat: mainnet contract deployment 0.4.0
* feat: deployments readme
* chore: add changeset
* contracts: remove dead contract
* contracts: remove dead config
* tests: fix to not test for old contracts
* feat: `rollup gasPrices` RPC endpoint (#1136)
* feature: l2geth endpoint
* chore: add changeset
Co-authored-by: Liam Horne <liam@lihorne.com>
* Adds l2 standard bridge to contracts markdown file (#1151)
* Version Packages (#1150)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Add more info about our branching strategy to the README (#1114)
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Remove references to OVM_L1ETHGateway in deployments and readme (#1119)
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: Elena Gesheva <elena@arenabg.com>
Co-authored-by: ben-chain <ben@pseudonym.party>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
Co-authored-by: Karl Floersch <karl@karlfloersch.com>
Co-authored-by: Rajiv Patel-O'Connor <rajiv.patel.oconnor@gmail.com>
Co-authored-by: rajivpo <rajivpatel-oconnor@Rajivs-MacBook-Pro-2.local>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
Co-authored-by: Ben Wilson <82120899+optimisticben@users.noreply.github.com>
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Tim Myers <timmyers09@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Annie Ke <annieke8@gmail.com>
Co-authored-by: platocrat <37757724+platocrat@users.noreply.github.com>
Co-authored-by: Matt Masurka <m.masurka@gmail.com>
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
Co-authored-by: Alejandro Santander <Palebluedot@gmail.com>
* Re-apply key changes on top of optimism most current develop
* Add docker-compose-replica.yml (#109)
* Create docker-compose-replica.yml
* Add replica service
* Update docker-compose-omgx-replica.yml
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* fix linter; patch gethl2
* configure the deployer correctly
* fix proposer / batch submitter
* update chainIDs
* update rpc test
* Create README_OMGX.md
* upstream - needs more work
* Adds delay to watcher (#1159)
* Adds delay to watcher
* Simplifies delay
* Adds changeset
* Fix wallet test
* Fix deployment test
* Add Python
* Update Dockerfile.omgx_monorepo
* Remove package-lock
* fix: bind dtl functions for missing event codepath (#1161)
* dtl: bind this in L1 missing element error handlers
* dtl: add additional logline
* chore: add changeset
* dtl: add more metrics
* dtl: use counter instead of gauge
Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
* fix: remove 'editor.formatOnSave' from global settings' (#1163)
* merge conflicts
* Update pre-commit
* Version Packages (#1167)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* minor
* Update pre-commit
* Fix wallet test (#119)
* Fix wallet test
* Fix deployment test
* Add Python
* Update Dockerfile.omgx_monorepo
* Remove package-lock
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* Reapply standard changes on top of current develop
* Update package.json
* doc: add notes for releasing new versions with changesets (#1166)
* Bind correct object to method handler in DTL (#1168)
* fix: bind correct object to method handler
* build: add changeset
* Version Packages (#1169)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Fix web wallet
* Fix integration test (#124)
* Fix integration test (#125)
* Fix integration test
* Fix integration test
* Fix wallet_react
* Fix lint test
* Remove package-lock
* Update integration.yml
* Fix wallet deployer
* Collect docker log
* Fix l1-l2-deposit-withdrawal test
* Fix sync test
* Add chainID to deployer config
* make sync tests dispatch only
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* Add short contribution section to primary README (#1157)
* Add short contribution section to primary README
* Update README.md
* fix: prevent batch submitter from submitting batches if low on ETH
* build: add changeset
* Eslint ignore the hardhat folder
* Update README.md
* Beginning to add working examples
* hardhart and waffle example tests
* document/check waffle
* test l1-l2 example
* add patch-package
* Update package.json
* build: ensure lint only staged files on commit
* refactor: do not run --fix on lint-staged
* refactor: *.{ts,js} for eslint regex
* l2geth: rollup client explicitly checks for >= 400 errors
* l2geth: sync service retries connection to remote server
* l2geth: test errors returning from remote
* chore: add changeset
* syncservice: nit
* feat[message-relayer]: add easy relay tool
* chore: add changeset
* upkeep[monorepo]: add changeset info to README
* merge conflict squash
* Daily sync up (#137)
* build: ensure lint only staged files on commit
* refactor: do not run --fix on lint-staged
* refactor: *.{ts,js} for eslint regex
* l2geth: rollup client explicitly checks for >= 400 errors
* l2geth: sync service retries connection to remote server
* l2geth: test errors returning from remote
* chore: add changeset
* syncservice: nit
* feat[message-relayer]: add easy relay tool
* chore: add changeset
* upkeep[monorepo]: add changeset info to README
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Kelvin Fichter <kelvin@optimism.io>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* build: set up eslint prettier correctly
* style: run yarn lint --fix at root
* build: add necessary packages to workspace root
* build: remove --format stylish
* build: set semvery ranges to match across packages
* build: set up prettierrc.js for monorepo
* refactor: rename Range to BlockRange
* build: set up correct working directories
* build: set up lint:fix to use eslint not prettier
* style: run lint:fix on all code
* build: remove prettier extension recommendation
* style: update configuration to include babel-eslint for .js linting
* build: set concurrency to 1 to prevent git add errors on lerna lint
* github actions: bump geth CI golang version
* fix(contracts): prevent L2->L1 calls to system contracts
* Update message relayer fast contracts (#139)
* prepare for wallet reorg
* Create yarn.lock
* fix hardhat bug
* merge conflict resolve
* daily sync up (#141)
* build: set up eslint prettier correctly
* style: run yarn lint --fix at root
* build: add necessary packages to workspace root
* build: remove --format stylish
* build: set semvery ranges to match across packages
* build: set up prettierrc.js for monorepo
* refactor: rename Range to BlockRange
* build: set up correct working directories
* build: set up lint:fix to use eslint not prettier
* style: run lint:fix on all code
* build: remove prettier extension recommendation
* style: update configuration to include babel-eslint for .js linting
* build: set concurrency to 1 to prevent git add errors on lerna lint
* fix(contracts): prevent L2->L1 calls to system contracts
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: ben <ben@pseudonym.party>
* Add Factory contract for creating standard ERC20 tokens
compliant with the standard bridge
* Disallow 0 address for l1 token when creating l2 standard token
* Fix linting issue
* Add deployment script for the L2 token factory
* Fix deploy script OVM_L2StandardTokenFactory constructor params
* Add changeset
* Cleanup deployment script for OVM_L2StandardTokenFactory
and fix a solidity linting error
* refactor(integration): Add clarity to the expectApprox function signature
* fix: skip codechecks for PRs from external repos
* DRAFT move react wallet and the contracts to more clear folders (#138)
* DRAFT move react wallet and the contracts to more clear folders
* merging the axios integration chagnes
* updated the message-relayer-fast contracts
* integrate message-relayer-fast into standard dockers
* Dockerize the message-relayer-fast
* update Readme.md
* remove duplicated contracts - just keep everything in /contracts
* add deploy for fast messenger
* message-relayer-fast testing
* Update serve.sh
* Delete yarn.lock
* Update constants.ts
* Create yarn.lock
* Update constants.ts
* Update function-manipulation.spec.ts
* increase the retries and other minor fixes
* Improved documentation
* fix omgx integration tests
* Update omgx-integration.yml
* integration test remove duplicated tests
* Fix units test configuration
* Update docker-compose-omgx-services.yml
* integration test setup fixes
* fix wallet integration test
* fix for crash on return
* integration tests for `message-relayer-fast`
* Update env.ts
* Autodeploy Token Bridges
* Update wallet contracts
* Update utils.ts
* improve omgx integration tests
* Add address manager address to GH actions for now
Co-authored-by: sahil kashetwar <>
Co-authored-by: Sahil k <sahil@enya.ai>
Co-authored-by: cby3149 <cby3149@outlook.com>
* merge conflicts
* GH actions regular changes
* husky
* Daily sync up (#144)
* build: set up eslint prettier correctly
* style: run yarn lint --fix at root
* build: add necessary packages to workspace root
* build: remove --format stylish
* build: set semvery ranges to match across packages
* build: set up prettierrc.js for monorepo
* refactor: rename Range to BlockRange
* build: set up correct working directories
* build: set up lint:fix to use eslint not prettier
* style: run lint:fix on all code
* build: remove prettier extension recommendation
* style: update configuration to include babel-eslint for .js linting
* build: set concurrency to 1 to prevent git add errors on lerna lint
* github actions: bump geth CI golang version
* fix(contracts): prevent L2->L1 calls to system contracts
* Add Factory contract for creating standard ERC20 tokens
compliant with the standard bridge
* Disallow 0 address for l1 token when creating l2 standard token
* Fix linting issue
* Add deployment script for the L2 token factory
* Fix deploy script OVM_L2StandardTokenFactory constructor params
* Add changeset
* Cleanup deployment script for OVM_L2StandardTokenFactory
and fix a solidity linting error
* refactor(integration): Add clarity to the expectApprox function signature
* fix: skip codechecks for PRs from external repos
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: ben <ben@pseudonym.party>
Co-authored-by: elenadimitrova <elena@arenabg.com>
Co-authored-by: Reggie Gomez <reggieag@gmail.com>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* docker: pin to alpine 3.13 for l2geth
A bug has appeared when older versions of Docker are used to build
alpine based images in alpine version 3.14. To prevent this problem
from happening to the users, this PR pins the version to 3.13.
The observed problem is that `make` cannot run any command and
the error message states `Operation not permitted.` Removing
`make` was one way to solve the problem but that would increase
the diff from upstream geth.
See these links for details:
https://github.com/alpinelinux/docker-alpine/issues/182
https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.14.0
* fix: update statement for skipping codechecks
* contracts: add set-l2-gasprice task
This task allows a user to update the L2 gas price using hardhat.
An example of doing so would be:
```bash
$ export CONTRACTS_DEPLOYER_KEY=0x..
$ CONTRACTS_RPC_URL=https://kovan.optimism.io npx hardhat set-l2-gasprice \
--l2-gas-price 1
```
This hardcodes the predeploy address of the `OVM_GasPriceOracle` smart
contract and the Owner must be used to do the updating, otherwise the
transaction will revert.
* removed unused functions from core utils
* [added] changeset
* next gen integration tests for the OMGX stack (#149)
* next gen integration tests for the OMGX stack
* finish first pass integration test outline
* move LP tests to the `message-relayer-fast`
* Update omgx-integration.yml
* add more tests to message-relayer-fast
* connect up the .env variables
* hard code URIs
* Update utils.ts
* Update omgx-integration.yml
* fix - should have been 8080
* Update omgx-integration.yml
* which address to use?
* Update omgx-integration.yml
* removing not needed code
* remove superfluous logging code
* Update utils.ts
* Update utils.ts
* additional comments and formatting improvements
* fix: use older changes on tests (#152)
* fix: use older structure
* correct messenger
* LP fees on the correct side
* correct messenger
* rearrange depl order
Co-authored-by: Souradeep Das <dsouradeep2@gmail.com>
* Update README_OMGX.md (#150)
Refactored some changes and added some comments I thought might be helpful for people.
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* tests: re-enable all tests (#155)
* re-enable all tests
* re-enable all tests
* Add solhint to contracts package
* Turn off compiler-version rule in solhint
* Add suggestions by @maurelian
https://github.com/ethereum-optimism/optimism/pull/1033#issuecomment-866146467
* Change solhint output formatting to table
* Disable contract-name-camelcase rule in solhint
* Fix max-line-length linting issues in contracts
* Fix quotes linting issues in contracts
* Remove private-vars-leading-underscore rule in solhint
* Add contracts linting to github action
* Fix for hardhat account balance parsing
* Disable generating the bytecodeHash in hardhat contract artifacts
* Review fixes
* Fix review notes
* Fix smockit for a change in hardhat ^2.4.0
which changes the way it parses errors from returndata
Fix provided by @smartcontracts
* dtl: configurable gas price backend
Adds a new config option `--l1-gas-price-backend` or
`DATA_TRANSPORT_LAYER_L1_GAS_PRICE_BACKEND` that can be set to `l1` or
`l2`. This impacts the behavior of the HTTP endpoint `GET /eth/gasprice`
by changing what is queried to return the L1 gas price. The L1 gas price
is required to compute the L2 fee since the L2 fee consists of
`L1 gas price * L1 gas used + L1 gas price * L2 gas limit`. If the L1
gas price differs too much between different L2 providers, then users
using `eth_estimateGas` may submit transactions with too low of a fee
and be unable to submit transactions to the sequencer.
By configuring the DTL to use L2 as the L1 gas price backend, it will
call the Sequencer's RPC endpoint `rollup_gasPrices` which returns the
L1 and L2 gas prices from the point of view of the sequencer. The L2 gas
price exists in the state, so that will always be the same between the
sequencer and any replicas. The L1 gas price does not live on chain, so
querying for it from the sequencer directly will ensure that users send
transactions with a fee that is large enough.
Also adds eth/gasprice info to README.
* Remove bl wl service (#154)
* replace `bl-wl` with direct calls the `omgx_deployer`
* Update docker-compose-omgx-services.yml
* Update up_local.sh
* Add CORS headers to http servers
* updated frontend to use the two new HTTP servers for the addresses
* update webwallet to work with both local and rinkeby
* Add missing .env variables to GH actions
* re-enable docker tages
* re-enable wallet transaction history
* Update up_local.sh
* Update up_local.sh
* Add flag to omgx_deployer to only serve addresses w/o deploying new contracts
* Update docker-compose-omgx-services.yml
* Add back tagging system and improved reliability of GH actions
* removed commented out service
* add rinkeby token addresses (#161)
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* fix: lint deploy-l2 folder in contracts
* Add AWS integration (#159)
* Add AWS integration
* Remove artifacts
* updated ops_omgx/README.md and added .github/workflows/deploy2aws-integration.yml and .github/workflows/push2aws.yml
* add automated provision and deletion of an ec2 instance for running the integration tests
Co-authored-by: Petar Denev <pdenev@gmail.com>
* fix: update CI to avoid running out of memory
* Version Packages
* ci: release latest image tags on release
* feat: update README to include info about rebasing
* Add op_exporter for sequencer metrics and health endoint
Added metric for sequencer health
Added Dockerfile for op_exporter;
Fixed Dockerfile path
* merge conflicts
* re-comment out the usual GH actions
* feat[integration-tests]: make tests work for prod networks
* chore: add changeset
* Increase client_body_buffer_size for rpc-proxy
Added client_max_body_size to rpc-proxy config
* l2geth: use `hexutil.Big` to prevent overflows
The `RollupClient` decodes the JSON from the DTL as a uint64,
this updates it to be a `big.Int`
Includes a test for the value field that ensures it does not overflow
* ci(contracts): only run codecov if contracts package is modified
In order to skip running the CodeCov job when it isn't relevant, a new job was added to the ts-packges workflow. For a PR, this job identifies all the files modified between the base branch and the tip of the PR branch, and writes to a variable which can be used to decide if subsequent jobs should run.
Github Actions provides an easy method for achieving this at the level of a workflow, but not for specific jobs within a workflow.
* Version Packages
* chore(ci): Skip codecov on push events
* feat: add workflow for running SNX test suite
* go: implement gasprices package
The `gasprices` package implements the logic that updates
L2 gasprices on the Optimistic Ethereum Network.
Co-authored-by: Karl Floersch <karl@karlfloersch.com>
* gas-oracle: implement and test
This commit adds the `gas-oracle` which is an offchain entity
that sends transactions to L2 to update the gas price. It must
be configured with a private key as the `OVM_GasPriceOracle`
is owned.
The `gas-oracle` is added to the changesets setup.
Tests are included as well as CI. Dockerizing will happen
in a follow up PR.
* gas-oracle: ci + docker build/publish
Adds a dockerfile for the `gas-oracle` as well as adding it as
a service in the `docker-compose.yaml`. It is not enabled by
default due to memory issues in CI already happening occasionally
where the integration tests are oom killed.
The `gas-oracle` is configured with a key that owns the
`OVM_GasPriceOracle`.
This PR adds the `gas-oracle` to the Github Actions
workflow that is responsible for publishing the docker images.
* Add replica (#169)
* fix: update erc20 deposits (#166)
* fix: update erc20 deposits
* fix: auto default token
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* resolve merge conflicts
* Update docker-compose.yml
* Update docker-compose.yml
* [pull] develop from ethereum-optimism:develop (#164)
* contracts: add set-l2-gasprice task
This task allows a user to update the L2 gas price using hardhat.
An example of doing so would be:
```bash
$ export CONTRACTS_DEPLOYER_KEY=0x..
$ CONTRACTS_RPC_URL=https://kovan.optimism.io npx hardhat set-l2-gasprice \
--l2-gas-price 1
```
This hardcodes the predeploy address of the `OVM_GasPriceOracle` smart
contract and the Owner must be used to do the updating, otherwise the
transaction will revert.
* Add op_exporter for sequencer metrics and health endoint
Added metric for sequencer health
Added Dockerfile for op_exporter;
Fixed Dockerfile path
* feat[integration-tests]: make tests work for prod networks
* chore: add changeset
* Increase client_body_buffer_size for rpc-proxy
Added client_max_body_size to rpc-proxy config
* l2geth: use `hexutil.Big` to prevent overflows
The `RollupClient` decodes the JSON from the DTL as a uint64,
this updates it to be a `big.Int`
Includes a test for the value field that ensures it does not overflow
* ci(contracts): only run codecov if contracts package is modified
In order to skip running the CodeCov job when it isn't relevant, a new job was added to the ts-packges workflow. For a PR, this job identifies all the files modified between the base branch and the tip of the PR branch, and writes to a variable which can be used to decide if subsequent jobs should run.
Github Actions provides an easy method for achieving this at the level of a workflow, but not for specific jobs within a workflow.
* Version Packages
* chore(ci): Skip codecov on push events
* feat: add workflow for running SNX test suite
* go: implement gasprices package
The `gasprices` package implements the logic that updates
L2 gasprices on the Optimistic Ethereum Network.
Co-authored-by: Karl Floersch <karl@karlfloersch.com>
* gas-oracle: implement and test
This commit adds the `gas-oracle` which is an offchain entity
that sends transactions to L2 to update the gas price. It must
be configured with a private key as the `OVM_GasPriceOracle`
is owned.
The `gas-oracle` is added to the changesets setup.
Tests are included as well as CI. Dockerizing will happen
in a follow up PR.
* gas-oracle: ci + docker build/publish
Adds a dockerfile for the `gas-oracle` as well as adding it as
a service in the `docker-compose.yaml`. It is not enabled by
default due to memory issues in CI already happening occasionally
where the integration tests are oom killed.
The `gas-oracle` is configured with a key that owns the
`OVM_GasPriceOracle`.
This PR adds the `gas-oracle` to the Github Actions
workflow that is responsible for publishing the docker images.
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Ben Wilson <bwilson@optimism.io>
Co-authored-by: Kelvin Fichter <kelvin@optimism.io>
Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
Co-authored-by: Ben Wilson <82120899+optimisticben@users.noreply.github.com>
Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Karl Floersch <karl@karlfloersch.com>
* Update docker-compose.yml
* adding l1-l2 test ecs scheduled task that does verify communication between L1 and L2 and L2 to L1 (#167)
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* Update docker-compose.yml
* daily update (#170)
* contracts: add set-l2-gasprice task
This task allows a user to update the L2 gas price using hardhat.
An example of doing so would be:
```bash
$ export CONTRACTS_DEPLOYER_KEY=0x..
$ CONTRACTS_RPC_URL=https://…
* op-service/eth: fix exec payload creation from block (#17154)
* op-service/eth: fix validationError string pointer reference
* op-service/eth: fix exec payload creation from block
Execution payloads must only set the withdrawals root post-Isthmus.
The block's withdrawals root is set during assembly pre-Isthmus.
* go: update op-geth dependency
* op-node: remove PromoteFinalizedEvent (#17165)
* chore(op-acceptance-tests): migrate TestInteropReadiness to op-devstack (#17160)
Convert the TestInteropReadiness test from devnet-sdk to op-devstack framework.
Use MultiCaller batching for contract interactions and presets.NewSimpleInterop()
for test setup. Fix challenger preset compilation issue temporarily.
* ci: Increase timeout of publish-cannon-prestates job (#17163)
* op-e2e: Remove unused withdrawal action methods (#17128)
* Remove unused withdrawal action methods
* fix lint from ‘go fmt’ to make ci happy
* feat(devstack/rpc): expose rpc endpoint (#17168)
* op-deployer: Add forge autodiscovery (#17152)
* op-deployer: Add forge autodiscovery
* add limit reader
* cr updates
* op-acceptance-tests: Introduce GameHelper to perform multiple moves (#16994)
* op-acceptance-tests: Add helper contract to perform multiple moves in dispute games.
# Conflicts:
# op-acceptance-tests/tests/isthmus/operator_fee/tx_utils.go
* op-acceptance-tests: Rename GameState to GameHelper and use it via FaultDisputeGame rather than directly.
* op-acceptance-tests: Verify claims are responded to correctly
# Conflicts:
# op-devstack/dsl/proofs/fault_dispute_game.go
* op-acceptance-tests: Better test name
* op-acceptance-tests: Simplify
* Use specific imports.
* Fix contract checks.
* Add comment
* Update snapshots.
* Remove unused extraData
* Remove unused extraData
* op-acceptance-tests: Review feedback
* plan: Add test that other node's dependencies are unaffected.
* plan: Introduce single function to reset fn and dependencies.
* dsl: Don't set a fixed gas limit for ETH transfers.
Transferring ETH to a contract uses more than 21,000 gas.
* op-service: Clarify testlogs (#17174)
* cannon: Drop version 7 feature flags (#17167)
* Drop SupportMinimalSysEventFd2 feature flag
* Drop SupportDclzDclo feature flag
* Drop SupportNoopMprotect feature flag
* Bump MIPS64 contract version
* Fix typo
* Cut unused variable
* Run semver-lock
* Update mips version in the StandardValidator
* Run semver-lock
* Bump StandardValidator contract version
* Cut unused features / stateVersion variables
* op-program: Disable go1.25 annotation of anonymous memory mappings. (#17176)
Prepares for go 1.25 to avoid it needing the prctl syscall which cannon doesn't support.
* acceptance-tests: Wait for follower node to be in sync with sequencer before allowing tests to start using the system. (#17179)
* feat: create a v2 of the fault dispute game to validate creator pattern (#16929)
* feat: create a new version of the fault dispute game to validate creator pattern flow
* chore: make ci happy with interface
* chore: run pre pr snapshots and rename interface to fix ci
* chore: remove duplicated(?) files
* chore: update immutable variable allowlist
* fix: exclude the FaultDisputeGameV2 from reinitialize test
* fix: array access
* fix: compiler setting restriction v2
* fix: snapshot lock
* fix: add faultdisputegame v2 to allowlist
* fix: use correct path
* feat: add helper function to test contract for v2 fdg
* Update packages/contracts-bedrock/test/dispute/DisputeGameFactory.t.sol
Co-authored-by: mbaxter <meredith@oplabs.co>
* fix: remove CANNON_2 for now
* fix: pull in readability change for cwia
* fix: add error to interface
* fix: add error to interface
* chore: bump semver and lock
---------
Co-authored-by: mbaxter <meredith@oplabs.co>
* Move `closer.Close()` to a defer statement immediately after error checking (#17166)
* op-sync-tester: Verifier Engine APIs for Isthmus (#17072)
* op-sync-tester: Verifier Engine APIs
* refactor and add comments
* rebasing for changing canyon from shanghai
* op-sync-tester: Verifier Engine APIs for Ecotone, Fjord, Granite, Holocene (#17181)
* Support fjord, granite, holocene
* Revise comments
* op-devstack: add SyncTester to sysgo; initial E2E test with SyncTester (#17132)
* op-devstack: link SyncTester with L2CL; initial e2e test
* op-sync-tester: augment sync tester config
* op-devstack: add TargetBlocks to sync tester initialization
* op-sync-tester, op-devstack: use FCUState
* op-devstack: remove SyncTester.hydrate
* op-acceptance-tests: enable L2CL2 sync with SyncTester
* op-sync-tester, op-devstack: renames
* op-devstack: remove pointer as FCUState is mandatory
* Upload finalized Cannon (Go 1.24) audit report (#17183)
* feat(cannon): reduce info logging frequency from %100000 to %1000000 (#17186)
* optimize cannon ux
* Fix from %1000000 to %1000000000
* Update README.md (#16753)
* Reorganize sync deriver logic (#17098)
* op-devstack: add hydrate to sync tester (#17198)
* cannon: Deploy Cannon with Go 1.24 support (#17155)
* Update standard MIPSVersion constant
* Update OPCMStandardValidator stateVersion() check
* Update StandardConstants.MIPS_VERSION
* Replace hard-coded mipsversion values in OPCMStandardValidator tests
* Run forge fmt
* Update OPContractsManagerStandardValidator version
* Run semver-lock
* chore: Add fork retries to upgrade tests (#17201)
* chore: Add fork retries to upgrade tests
* fix: Param
* chore: Use env instead
* feat(kurtosis-devnet): 1/2 add flashblocks support (#17172)
* feat(kurtosis-devnet): flashblocks support
* feat(kurtosis-devnet): lint
* fix(flashblocks): 1/2 comments
* all: Update op-geth dependency, based on geth v1.16.1 (#16785)
* Upgrade op-geth with upstream v1.16.1 version
* Update to fix linters
* go mod tidy
* Fix part of tests
* Update op-geth dependency
* don't enable osaka in op-program test miner
* Bump op-geth version
* Disable Osaka in op-program test miner
* op-program: Refresh cannon compat report (#17071)
This is done for an incoming op-geth dependency update.
The new vm-compat findings highlight a new control flow path where the
flock syscall could be used. Similar control flow paths already exist in
the existing compatibility report. And these are benign for the same
reason; because they're only reachable by a program that uses a real
file-based ethdb.Database. The op-program uses a memory-based
ethdb.Database implementation to ensure that no file-related operations
occur during its execution.
The other flagged (WARNING) syscall use is related to the above flock
operation. This occurs when the go runtime issues epoll_ctl syscalls to
synchronize the file lock. Since we know that file operations won't
occur, this syscall use is also unreachable.
* Bump op-geth version
* op-service/eth: fix validationError string pointer reference
* op-service/eth: fix exec payload creation from block
Execution payloads must only set the withdrawals root post-Isthmus.
The block's withdrawals root is set during assembly pre-Isthmus.
* Bump op-geth version
* Bump op-geth version (catch nil chainView)
* Bump op-geth dependency to v1.101601.0-rc.1
---------
Co-authored-by: Sebastian Stammler <seb@oplabs.co>
Co-authored-by: Inphi <mlaw2501@gmail.com>
* challenger: Add a metric to report the number of consecutive failures (#17193)
* challenger: Add a metric to report the number of consecutive failures per VM type
Allows ignoring transient errors in setup because a source node is briefly offline.
* challenger: Create vmInstructionCacheMissCount metric.
Fixes nil dereference.
* superchain-config: Fix fuzz test proxyAdmin constraints (#17203)
* Disallow *super* proxyAdmin/Owner
* Tweak comment
* op-up: add ascii art (#17205)
* op-chain-ops: update srcmap loading to handle forge compiler profiles (#17196)
* op-up: add survey link (#17206)
* op-up: add ascii art
* op-up: add survey link
We needed to build the orchestrator ourselves instead of using
the higher-level `presets.DoMain` function because `DoMain` calls
`os.Exit`, preventing us from showing the link on exit. This
dependency was also preventing us from implementing better CLI
handling (#17076), which is now unblocked.
* op-up: basic cli argument handling (#17208)
* ci: Write cannon preimage commit info to a temp file before uploading (#17219)
May let gsutil cp retry better and fix flakiness.
* op-sync-tester: implement L2ELNode interface with sync tester (#17200)
* op-devstack: implement SyncTester as ELNode interface
* op-sync-tester: remove Target and EntryCfg
* op-devstack: use ids.SyncTester identity for the SyncTester
* op-devstack: both userRPC and authRPC contain session parameters
* op-devstack: add user and auth proxy to sync tester
* chore: update op-deployer docs (#17204)
* Update installation.md
* Update installation.md
* fix(ci): remove #986 todo (#17229)
* Verify contract deployment tx is actually included. (#17232)
The generated bindings only verify that the transaction can be sent, not that it was actually included which can lead to race conditions where estimating gas for the next tx that uses the transaction fails because there is no code at the address if the tx is still pending.
* op-sync-tester: Verifier Engine APIs for Bedrock, Canyon, Delta (#17234)
* op-sync-tester: Verifier Engine APIs for Bedrock, Canyon, Delta
* op-devstack: Presets for sequential HF activation
* op-acceptance-tests: L2CL with Sync Tester advance HF with distinct time
* typo
* feat(op-devstack): support kona supervisor sysgo (#17195)
* feat(op-devstack): support kona-supervisor in sysgo
* remove cluster rollupcfg
* supervisor opt removed
* op-up: add unit test (#17210)
* op-program: Fix length check for pending progress in consolidate step (#17220)
* op-challenger: Implement an option to restrict frequency of update cycles. (#17233)
By running update cycles less often, the number of calls made to the L1 node can be reduced.
* feat(op-acceptance-tests): flaky test report; updates. (#17250)
- Ensure its sorted by #flakes(desc)
- Add a warning about positive false positives
* op-sync-tester: Session Types and API interfaces (#17252)
* op-sync-tester: Session Types and API interfaces
* linter
* op-deployer: Add forge CLI wrapper (#17231)
* op-deployer: StandardBin enforces specific forge version (#17242)
* AutodetectBin enforces specific forge version
* remove dir creation from AutodetectBin.Ensure()
* rename AutodetectBinary to StandardBinary
* cannon: Reduce size of heap/code cache (#17246)
* cannon: Reduce size of heap/code cache
* op-e2e: Bump executor limiter for fp tests
* cannon: rename defaultCodeRegionSize
* op-devstack: Fix flakiness in AwaitTimestamp (#17270)
There's no guarantee that a waiter will see every block, so just find the block the fork should activate and wait for it specifically.
* op-deployer: enable embedded artifacts integration test (#17276)
* ci: Remove codecov from go tests (#17291)
* op-devstack: Explicit Sync Tester EL and API Session Binding (#17275)
* op-devstack: Explicit mock EL and Session binding
* Add dummy session to acceptance tests
* op-devstack: better sync tester naming and init
* revoke and comments
* Modularize and clean up
* configurable delay between game responses (#16988)
* update op-challenger README devnet startup commands
* implement basic version of configurable delay between game responses inside the op-challenger
* add integration testing for the ResponseDelay parameter which controls the configurable delay between game responses
* implement feedback from reviews, in particular improvements to the unit / integration testing and switching to use of clock.Clock
* implement ResponseDelayAfter config, adding a new config param controlling how many responses into each game the ResponseDelay config should become active
* implement the agent to respond immediately (bypass any ResponseDelay config set) if the game is currently inside the extension period
* make improvements from feedback, add a check to ensure that delaying only occurs when it will not cause the challenger to wait until the extension period begins, and also add the additionally needed testing associated with that new check
* fix minimal race condition of responseCount using mutex
* simplify delay calculation logic by removing calculateActualExtension() function and its associated testing, since the base extension is, anyway, a more conservative figure
* switch to using an atomic int for responseCount instead of a separate mutex
* add clarity on the functioning of the ResponseDelay and ResponseDelayAfter configuration fields in config.go
* Apply suggestions from code review
Co-authored-by: Adrian Sutton <adrian@symphonious.net>
* correct bug identified in feedback with wrong grandparent claim logic in agent.go and updated relevant tests
* fix typo from suggestion and associated issues in testing
* simplify logical legibility based on review feedback in agent.go
---------
Co-authored-by: Adrian Sutton <adrian@symphonious.net>
* chore: remove the frozen file check (#17289)
* chore: remove the frozen file check
* fix: remove references to removed script
* fix: remove frozen code check
* feat(op-acceptance-tests): port fjord (holocene) tests to devstack (#16920)
* feat(op-acceptance-tests): port fjord (holocene) tests to devstack
* feat(op-acceptance-tests): add holocene to base tests
* cr nits
* block nos
* blocknum
* fix(tests): fix port
* fix(tests): typo
* fix(op-acceptance-tests): typo
* fix(op-acceptance-tests): simplify tests
* fix(op-acceptance-tests): fix teku version
* fix(op-acceptance-tests): pass context
* fix(op-acceptance-tests): pin l1 block reads
---------
Co-authored-by: Matthew Slipper <me@matthewslipper.com>
* op-sync-tester: Support sync namespace (#17299)
* op-sync-tester: Sync namespace implementation
* op-devstack: Sync Tester DSL
* op-acceptance-tests: Sync Tester sync namespace tests
* all: Update op-geth dependency, based on geth v1.16.2 (#17228)
* update op-geth version
* Update cannon baseline files for geth 1.16.2 upgrade.
---------
Co-authored-by: Adrian Sutton <adrian@oplabs.co>
* op-deployer: add configurable chainIntent.GasLimit field (#17271)
* feat(op-acceptance-tests): Port TestSmokeTestFailure and TestInteropSystemNoop to Devstack (#17300)
* feat(op-acceptance-tests): port interop smoke tests
* feat(op-acceptance-tests): linter
* ci: Run the publish-cannon-prestates job on circleci boxes instead of latitude. (#17296)
It doesn't need lots of resources and we're seeing network flakiness so try uploading from a different network.
* op-devstack: add sync-tester with external EL (#17251)
* op-devstack: add sync-tester with ext cl config
* op-devstack: try setting up remote L2 chain
* op-devstack: use remote EL and CL for L1 nodes
* op-devstack: fix L2CL from sequencer to verifier
* op-devstack: remove redundant configs
* op-acceptance-tests: use RPC for CI
* op-acceptance-tests: skip tests until CI allows tests using external endpoints
* circleci: attempt CI endpoints
* op-devstack: address comments from PR
* op-devstack: address comments from PR
* fix comment for l1.cache-size (#17107)
* feat: add feature flagging functionality to SystemConfig (#17281)
* feat: add feature flagging functionality to SystemConfig
Adds a function to the SystemConfig for feature flagging. Features
are identified by 32 byte strings and can be toggled on or off by
the ProxyAdmin or the owner of the ProxyAdmin. Note that this
commit does not actually use any feature flags but demonstrates
what a feature flag would look like by adding in the flag for
the ETHLockbox feature.
* feat: update for PR feedback
* fix: small test tweaks
* fix: broken test
* feat(op-acceptance-tests): add more sysgo tests. (#16817)
* feat(op-acceptance-tests): add more sysgo tests.
* fix(op-devstack): ecotone; fees.
Use the actual increase in the L1FeeVault balance. This is because in Ecotone, the L1 fee includes both base fee and blob base fee components.
* fix(op-acceptance-tests): skipping flaky/broken tests.
* fix(op-acceptance-tests): interop; TestInteropSystemSupervisor
* fix(op-acceptance-tests): justfile; exit early for gateless.
* fix(op-acceptance-tests): tidied justfile
* fix(op-acceptance-tests): fix ecotone fees.
The recent commit changed L1 fee calculation to use vault balance increases as the source of truth, but base fee and priority fee calculations were still using the old method (calculating from block data). Made all fee calculations by making vault increases the source of truth.
* fix(op-acceptance-tests): increase default timeout for gateless mode.
* chore: Conditional logic
* fix(op-acceptance-tests): TestSuperRootWithdrawal nonce issue and timeouts
* fix(op-acceptance-tests): re-enable safeheaddb tests after #17083 fix
* fix(op-acceptance-tests): security; env var injection
The LOG_LEVEL environment variable is used directly in shell command execution without validation or sanitization, allowing command injection attacks.
* feat(op-acceptance-tests): justfile; allow gateless for sysext.
Allow gateless mode to run for an external devnet ('sysext' orchestrator)
* clean(op-acceptance-tests): circleci; removed memory-base job
The new memory-all is a superset of memory-base; so we don't need both.
* fix(op-devstack): enhance Ecotone fee validation and enforce operator vault constraints
- Add validation that receipt L1Fee matches L1FeeVault increase
- Restore receipt-based fee calculations for validation (baseFee and L2Fee)
- Enforce OperatorVault must be zero in Ecotone (operator fees introduced in Isthmus)
- Exclude OperatorVault from total fee calculations in Ecotone
- Add comprehensive receipt fee validation checks
* fix(op-devstack): ecotone; cross-validation of fees
Added cross-validation between receipt and vault fees: The code now verifies that:
- receiptBaseFee (block.BaseFee × gasUsed) equals vaultBaseFee (BaseFeeVault increase)
- receiptL2Fee (effectiveGasPrice × gasUsed) equals vaultL2Fee (BaseFee + SequencerFee vault increases)
* fix(op-devstack): supervisor sync status L1 mismatch retry
Increase retry attempts and handle L1 sync mismatch errors to fix flaky TestExecMsgDifferEventIndexInSingleTx.
* fix(op-acceptance-tests): TestPostInteropUpgradeComprehensive
Made it serial due to flakiness.
* feat(op-acceptance-tests): ci; tweak timeout and verbosity.
* fix(op-acceptance-tests): exclude interop tests from ci tag
These in-memory devstack tests don't work reliably with gotestsum's
retry mechanism. They run fine via op-acceptor in the memory-all job
but fail when run directly with go test in go-tests-short.
Adding !ci build constraint to exclude from standard CI test suite
while keeping them available for dedicated acceptance test runs.
* fix(op-acceptance-tests): TestWithdrawal nonce synchronization
Use fresh EOA instance for withdrawal initiation to prevent nonce
conflicts when shared L1/L2 keys encounter retry logic.
* chore(op-acceptance-tests): TestPreNoInbox marked as flaky
* chore(op-acceptance-tests): test limiting concurrency
* chore(op-acceptance-tests): self-hosted runner
Default to using our self-hosted runners.
Accept a parameter which allows individual jobs to opt-out and use CCI/Cloud runners.
---------
Co-authored-by: Jan Nanista <jan.jakub.nanista@gmail.com>
* feat(op-acceptance-tests): move all ATs to one workflow (#16755)
Stop running (sysgo/in-memory) acceptance tests as unit tests in other workflows
* feat(op-acceptance-tests): op-acceptor v3.1.0 (#17310)
Upgrades op-acceptor to [v3.1.0](https://github.com/ethereum-optimism/infra/releases/tag/op-acceptor%2Fv3.1.0)
* make `IDelayedWETH` inherit `IProxyAdminOwnedBase` (#16912)
* make IDelayedWETH inherit IProxyAdminOwnedBase
* forge fmt
* circleci, op-acceptance-tests: nightly ci sync tests with external networks (#17314)
* circleci, op-acceptance-tests: nightly ci sync tests with external networks
* circleci: try sync_tester_ext_el within op-acceptance-tests
* circleci: disable test on every push; run on daily schedule
* feat: bump op-geth and update GetCommittedState to GetStateAndCommitedState (#17323)
Co-authored-by: Jacob Elias <jacobelias@Mac.lan>
* remove un-used code in backend.FromConfig (#17321)
* remove dup (#17325)
* feat: creator pattern integrate FaultDisputeGameV2 into DGF (#17119)
* feat: update dispute game factory to support impl args
* test: test cwia update through dgf
* fix: test function name linting
* fix: remove unneeded function
* test: move creator pattern create test to create contract
* fix: remove funciton for setImplementationArgs from the interface as well
* fix: add back unclassified tests
* fix(nit): update wording
Co-authored-by: mbaxter <meredith@oplabs.co>
* fix: conflict from cherry pick
* fix: update table to not be prescriptive about layout
* fix: formatting for table
* test: add tests for v2 and adjust based on impl updates for cwia
* fix: vm getter in tests
* fix: reuse _setGame and add additional param for implArgs
* chore: run forge fmt
* fix: directory structure validation
* fix: semver version bump fault dispute game v2
* fix: add same exclusion that exists for FaultDisputeGame.sol
* fix: bump snapshots
* chore: bump opcm standard validator semver
* fix: assert revert explicitly revert with no data
* fix: fork tests root claim
* fix: remove unused params from _getGameConstructorParamsv2 and setupFaultDisputeGameV2
* fix: bump major version for breaking change
* test: add tests for setImplementation with args
* test: check the rest of the constructor args
* test: set l2ChainId to nonzero value to make validate setting
* chore: remove console.log
* fix: revert earlier with calldata length check
* test: add asserts for the creator and l2blocknumber
* chore: remove comment about skipping in fork environment
* fix: follow new naming convention
* fix: use more realistic args for implArgs
* fix: bump semver for standard validator
* chore: bump snapshot for StandardValidator
---------
Co-authored-by: mbaxter <meredith@oplabs.co>
* op-sync-tester: Better Session Handling (#17316)
* op-sync-tester: Better Session Handling
* Use lock instead of rlock
* bug fix and style
* handle concurrency properly
* Simply session locking model
* feat: op-node sync tests for multiple networks in ci (#17334)
* feat: try to run synctest inci
* fea: try to run sync test with envvars
* fea: try to run sync test with envars and updated job
* fea: try to run sync test with matrix
* feat: no beacon l1 ci endpoint yet, just add base sepolia
* feat: added some todos for sync tester and unisepolia syncing
* op-acceptance-tests: remove chain id comparison; move runtime logs to test
* do not trigger on PRs
---------
Co-authored-by: Jacob Elias <jacobelias@Mac.lan>
Co-authored-by: Anton Evangelatov <anton.evangelatov@oplabs.co>
* min-base-fee: bring in op-geth code (#17307)
* boilerplate for Jovian fork
* update op-geth version
brings in min-base-fee code
* changes to get current tests passing
* kurtosis devnet: use temporary image for op-geth
Matches the version currently in go.mod. Can be reverted to default once the op-geth release is made.
We need to do this because interop implies jovian, so we need a jovian compatible op-geth to run with the longer extradata from genesis.
* bump op-geth
* update expected error message in TestCheckEIP1559ParamsMatch
* update to take account of PayloadAttributes.MinBaseFee being a *uint64
* op-program fixes
* fix computePayloadId
* use static error
* update op-geth image for interop kt-devnet
* createGenesisWithForkTime => createGenesisWithForkTimeOffset
* fully add interop override flag to op-service
* refactor: define holoceneArgs in terms of jovianArgs
* add test cases
* MinBaseFeeExtraData -> JovianExtraData
* bump op-geth version, make use of eip1559.DecodeOptimismExtraData
* checkEIP1559ParamsMatch -> checkExtraDataParamsMatch
* bump op-geth
* go mod tidy
* use eip1559.Validate/DecodeOptimismExtraData in PayloadToSystemConfig
* bring interop devnet op-geth in line with go.mod op-geth
* fix bug (pointer comparison)
* fix test
* go mod tidy
* tag issue in TODO
* consolidate: validate extra data even pre Holocene and fix test
* fix test miner to set minbasefee correctly
* use eip1559.DecodeOptimismExtraData in blockToDepositsOnlyAttributes
* bump op-geth
* go mod tidy
* bump op-geth in kt devnet
* only validate extra data from holocene
* bump op-geth to tagged RC
* use pre-Jovian value in test miner.Fork
* op-program test miner: set min base fee to a stub (valid) value if Jovian is active
* remove redundant check on isOptimism
We are always running op rules inside the program
* Co-authorship credit
This PR contains work that was cherry-picked from https://github.com/ethereum-optimism/optimism/pull/16852.
This commit will mean they are credited with co-authorship.
Co-authored-by: William Law <williamlaw.wtl@gmail.com>
Co-authored-by: Niran Babalola <niran@niran.org>
---------
Co-authored-by: William Law <williamlaw.wtl@gmail.com>
Co-authored-by: Niran Babalola <niran@niran.org>
* feat: dev feature flagging in OPCM (#17268)
* feat: dev feature flagging in OPCM
Adds functionality to tests and OPCM that makes it possible to
execute use feature flags in the OPCM that selectively utilize
specific functionality. This flag is represented as a 32 byte
bitmap for op-deployer compatibility and makes it possible to
support 32 unique development features at the same time.
* feat: small ergonomic cleanup
* feat: test fixes
* fix: portal upgrade implementation
* fix: more test fixes
* fix: working on lockbox tests
* fix: most contract tests should work now
* fix: run opcm against latest blocks
* fix: update OPCM bindings
* fix: correct error format in OPCMCC
* fix: update ReadImplementationAddresses
* fix: bug in ReadImplementations
* fix: tweaked superchain config check in ocpm for now
* fix: opcm fix after rebase
* fix: use fake feature for SystemConfig tests
* feat: parameterized tests for dev features
* fix: circle ci syntax
* fix: matrix naming
* feat: parameterize upgrades too
* fix: only parameterize coverage
* feat: more tests
* fix: rebase conflicts
* feat: add dev feature bitmap to e2e
* fix: go bug
* fix: more go test failures
* fix: pr comments
* fix: better check for use super roots
* fix: pr feedback
* fix: skip test for interop lockbox
* fix: typo
* fix: rebase fixes
* fix: ci naming
* feat: updated system config pause (#17322)
* feat: updated system config pause
* fix: ci fixes
* fix: simpler logic in system config paused check
* fix: rebase fixes
* feat: have VerifyOPCM check for dev bitmap (#17324)
* feat: have VerifyOPCM check for dev bitmap
* fix: include required getter in verifyopcm
* op-e2e: Fix broken jovian precompile FP tests (#17349)
* contracts: Add CANNON_KONA game type (#17358)
* contracts: Add CANNON_KONA game type
* contracts: Add SUPER_ASTERISC_KONA game type
* contracts: Add super cannon kona game type
* feat(readme): update directory structure (#17359)
* refactor(op-e2e): use ActivateForkAtOffset utility (#17362)
Currently, each time we do a new fork we need to go back and modify activation action tests for some prior forks. With this change, such modifications will no longer be necessary.
* fix superchainConfig upgrade issue & support multiple superchainConfigs (#16838)
* fix superchainConfig upgrade issue & support multiple superchainConfigs
* fixes to upgrade tests and contracts-check
* better approach, compare versions
* fixes
* fixes
* fix non op upgrade tests
* fix the opcm upgrade checks to support upgradeSuperchainConfig function checks
* add test for SuperchainConfigInconsistent error
* fix upgrade fn superchainConfig check
* add more tests for SemverComp
* implement decisions from design doc review
* implement decisions from design doc review
* fix semver and snapshots
* implement checks for upgradeSuperchainConfig
* fix ci
* address comments
* address comments
* rm dup comment
* improve test nit
* address graphite comments
* fix ci
* op-sync-tester: Better logging (#17364)
* proofs: Introduce PermissionedDisputeGame v2 (#17290)
* Create PDG v2
* Add PDG v2 interface
* Fix references to FDG and interface
* Add PDG v2 test
* Fix pdg v2 setup in test
* Fix pdg v2 game setup in tests
* Add a few more test assertions, rework l2ChainId handling
* Update PDG v2 version
* Update some config files that should reference PDG v2
* Run semver-lock
* fix: exclude PermissionedDisputeGamev2
* chore: run forge fmt
* fix: follow new naming convention
* fix: incoming change added exclusion as well
---------
Co-authored-by: steven <steven.nevins.js@gmail.com>
* docs(op-e2e/system): add deprecation notice (#17369)
* op-e2e/system: add deprecation notice
* clarify where to put acceptance tests
* op-service: cliutils add support for common.Hash (#17376)
* op-service: cliutils add support for common.Hash
* add hash validation to avoid unexpected behavior
* op-challenger: Fix metric label name for asterisc-kona (#17367)
* prestate-check: Add support for kona (#17355)
* prestate-check: Introduce abstraction for how prestate data is loaded
Begins preparing for adding kona prestate support.
* prestate-check: Abstract chain config loader.
op-reth doesn't use the same format for superchain config data.
* prestate-check: Support loading config data for kona states.
* prestate-check: Remove config loader abstraction again.
* prestate-check: Replace todo with explanation
* prestate-check: Point back to optimism branch
* op-program: Use prestate build script in repro.justfile (#17372)
* op-challenger: Add cannon-kona trace support (#17356)
* add kona cannon executor
* implement cannon-kona trace type support
- add TraceTypeCannonKona case to runner/factory.go
- add TraceTypeCannonKona validation to flags/flags.go
- fix CLI arguments for kona-host in kona_server_executor.go
* simplify switch logic over trace types in flags.go
* fix cannon-kona trace type CI failures: add missing validation, test setup, and parameter fixes
* implement more robust Cannon/CannonKona architectural separation with dedicated flags, config validation, and test setup to fix CI failures based on feedback
* Set cannon-kona path in docker images
Add cannon-kona to set of default games.
* op-challenger: Fix tests.
* op-challenger: Add super-cannon-kona game type
Not yet supported as a trace type.
* op-challenger: Reduce duplicate code
---------
Co-authored-by: angel-ding-cb <angel.ding@coinbase.com>
Co-authored-by: Leopold Joy <leo@leopoldjoy.com>
* fix: version loop to handle tags with spaces (#17360)
* fix: bump validator version on develop (#17378)
This PR bumps the version for the StandardValidator on develop.
The version in the 4.1.0 proposal branch is 1.13.0 and this
version incldues changes that are not on the proposal branch, so
this version will be 1.14.0.
* fixed kona envs (#17370)
* op-acceptance-tests: upgrade tests with real-data (op-sepolia) (#17363)
* op-acceptance-tests: hfs ext package
* enable acceptance tests
* op-acceptance-tests: wait for LocalSafe to progress as well
* SerialT to ParallelT
* longer timeout
* correct runtime config print
* try run_all: true
* op-acceptance-tests: split sync_tester tests into multiple packages
* op-acceptance-tests: add Delta HF; use RollupConfig() instead of ChainConfig()
* enable check against UnsafeL2.Time
* use rollup types, and simplify tests
* extract WaitForNonZeroUnsafeTime
* better errors for syncTester session
* Get version of impls from the impl contracts themselves, reduce bytecode (#17377)
* docs: add interface inheritance guidelines and style examples to guide (#17339)
* docs: add interface inheritance guidelines to style guide
- Document why contracts must not inherit from their own interfaces
- Explain alignment issues with base contracts and compiler errors
- Add examples showing correct and incorrect patterns
- Include rationale for pseudo-constructor requirements
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Update intro
* Fix outdated errors section
* Add examples to underscore prefixed args section
* Add examples for named vars
* Add examples for events
* Examples for immutables
* Examples for spacers
* Remove "trivial boolean with string" case as allowed.
* Fix example: errors go inside contract
* feat: add semgrep rule for event parameter formatting
Implement sol-style-event-param-fmt rule to enforce:
- Event parameters must use camelCase
- No underscore prefixes on event parameters
- All event parameters must be named
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Improve event params guidance and add a semgrep rule
* Undo adding immutable tests
It's a rabbit hole I don't want to go down rn
* Improve immutable examples
* Typo fix
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
* op-up: encode version information in binary (#17405)
* fix(op-acceptance-tests): wait for fund balance for persistent devnets (#17397)
* fix(op-acceptance-tests): wait for fund balance for persistent devnets
* fix(op-acceptance-tests): always wait for balance
* fix: remove unused variables from test file (#17400)
* op-conductor: p2p healthcheck fix and execution_p2p_healthcheck_api_type (#17294)
* op-conductor: p2p healthcheck fix and execution_p2p_healthcheck_api_type
Signed-off-by: Yashvardhan Kukreja <yashvardhan@oplabs.co>
* nit
Signed-off-by: Yashvardhan Kukreja <yashvardhan@oplabs.co>
---------
Signed-off-by: Yashvardhan Kukreja <yashvardhan@oplabs.co>
* circleci: enable OPM and Base mainnet op-node sync tests (nightly) (#17393)
* circleci: enable OPM op-node sync tests
* add base mainnet
* slack: notify on failure with mention in #notify-ci-failures
* use slack member id
* op-dispute-mon: Support cannon-kona games (#17380)
* ci: Add a stand alone check for solc warnings (#17403)
* ci: Add a stand alone check for solc warnings
* Use non-dev build to prevent compiler warnings
* op-up: update default version in install script (#17414)
* acceptance-tests.yaml: flashblocks-with-isthmus gate config (#17413)
Signed-off-by: Yashvardhan Kukreja <yashvardhan@oplabs.co>
* feat(op-acceptance-tests): v3.2.1 (#17422)
Updates op-acceptor to v3.2.1, which adds an optional progress indicator
* feat(devstack): add user RPC method. fix kona config in sysgo (#17390)
* Revert "ci: Add a stand alone check for solc warnings (#17403)" (#17428)
This reverts commit 3f11e7f90488ace578c5ec27a937e9414421e309.
* afix slack in semgrep-scan (#17433)
* chore(op-acceptance-tests): ci timeout (#17438)
Temporarily increase the 'no_output' CircleCI timeout as there's an issue making the tests occasionally stall for a long time.
* op-node: Skip L1 genesis hash check if block is not available from the L1 (#17407)
* op-node: Skip L1 genesis hash check if block is not available from the L1
* op-node: Switch L1 genesis check to using MaybeAsNotFoundErr
Switch supervisor_client back to it's own isNotFound. MaybeAsNotFoundErr is specific to identifying blocks and headers that are not found, the supervisor client is looking for super root not found. That's an important distinction so we should use separate code.
* Fix lint
* Update test
* chore: bump op-geth to include new superchain registry configuration of arena-z-sepolia isthmus hardfork (#17437)
* refactor(test): improve L2CrossDomainMessenger test coverage and quality (#17415)
* refactor(test): improve L2CrossDomainMessenger test coverage and quality
- convert sendMessage test to fuzz test for broader parameter validation
- enhance constructor test with version and MESSAGE_VERSION assertions
- enhance initialize test with additional state validation
- add focused sendMessage test with full event verification
- all tests pass and maintain existing functionality
* fix: rename test function to follow naming convention
- Change testFuzz_sendMessage_validParams_succeeds to testFuzz_sendMessage_withValidTargetAndGasLimit_succeeds
- Addresses GitHub comment about generic 'validParams' reason
- Function name now follows [method]_[functionName]_[reason]_[status] pattern
- Updated comment to be more descriptive of test scenario
* fix: apply forge fmt to resolve contracts-bedrock-checks CI failure
- Fix import statement formatting (add spaces around braces)
- Fix function call formatting (add spaces around braces)
- Fix function parameter formatting for multi-line declarations
- Addresses contracts-bedrock-checks CI failure from previous commit
* fix: replace assert with assertGt for better test practices
- Replace assert(bytes(...).length > 0) with assertGt(bytes(...).length, 0)
- Use Forge's assertion functions instead of native Solidity asserts
- Addresses mds1's code review feedback
* feat: increase fuzz test gas limit bound from 5M to 30M
- Align with other cross-domain messaging tests in codebase
- CrossDomainMessenger.t.sol uses 30M, bridges use 10M, portal uses 50M
- 30M is only 0.70% of uint32.max and well within technical constraints
- Provides better fuzz coverage for realistic gas limit scenarios
- Addresses mds1's feedback about conservative 5M bound
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* feat: set up OPCM for U17 (#17406)
* feat: set up OPCM for U17
This PR removes U16 code from the OPCM and updates it to work for
U17. Various tests have been updated to support this, and the OPCM
has been improved so that it can be more easily utilized by
future maintainers.
* feat: get rid of old upgrade functions
* fix: semgrep errors
* fix: encodecall error
* fix: opcm check look at internal func
* fix: bump interop portal version
* fix: one more broken test
* fix: opcm graphite comment
* fix: go tests
* fix: superchain config test error
* fix: more test failures
* fix: more test failures
* fix: correct semgrep/event rules
* fix: pr review
* fix: compilation errors
* feat: contract changes to enable min-base-fee (#17330)
* min-base-fee solidity diffs
* Update packages/contracts-bedrock/src/L1/SystemConfig.sol
Co-authored-by: Matt Solomon <matt@mattsolomon.dev>
* just pre-pr
* remove codegen bin
* update semver and remove some more diffs in systemconfig codegen
* revert bindings/systemconfig
* just pre-pr
---------
Co-authored-by: George Knee <georgeknee@googlemail.com>
Co-authored-by: Matt Solomon <matt@mattsolomon.dev>
* fix(op-deployer): EnsureDefaultCacheDir (#17411)
* justfile: add latest-versions recipe (#17399)
* justfile: add latest-versions recipe
* fix command failure masking
* print both stable and latest versions
* chore(cleanup): close #17194 (#17452)
* op-acceptance-tests: remove INITIAL_L2_BLOCK variable, and fetch latest block number from EL (#17453)
* op-deployer: read addresses onchain instead of from chainConfig (#17456)
* feat(op-acceptance-tests): op-acceptor v3.3.0 (#17467)
https://github.com/ethereum-optimism/infra/releases/tag/op-acceptor%2Fv3.3.0
* feat: add tests for min-base-fee (#17441)
* min-base-fee solidity diffs
* remove codegen bin
* update semver and remove some more diffs in systemconfig codegen
* revert bindings/systemconfig
* e2e test
* spike acceptance-test
* wip acceptance test
* add support for jovian mbf
* op-acceptance-test: min base fee (#14)
* add kurtosis files
* move dsl into test
* passing
* ensure block is progressing
* remove checkfordecrease func
* simulate txs
* nits + simplify
* base + jovian sysgo passes
* sysext passes
* nits + reduce bindings diff
* just wait for 1 block
* use zero addr, and swap test order
* add else clause to e2e test
* use high/med/zero mbfs
* e2e test configure mbf
* check activation block base fee is less than mbf
* wip setting diff mbfs
* claude fix
* build activation+1 block
* simulate some tx on diff med/high mbfs
* wip claude dont use extclient
* use 2gwei, 5gwei too high causes maxFeePerGas error
* sysgo and sysext pass for jovian
* dont default ptr(0) and first nit on action test
* remove user tx in actions
* acceptance-test no user tx + reduce diffs in actions
* kurtosis: run on jovian devnet (#15)
* wip
* pin teku version
* fix TestSystemConfigMarshaling
* fix attribute test + add comment in payload_util
* godoc: mbf in SystemConfig (#17481)
* fix: bug blocking op-deployer verify (#17478)
Fixes some bugs in op-deployer's verify command. Also fixes a few
issues with the contracts that causes the deployer to struggle
to properly verify things.
* feat(ci): parallelise go-tests jobs (#17468)
* feat(ci): go-tests now uses a fan-out.
These tests should now fan-out to multiple machines in CI, making the runs faster and more reliable.
* feat(make): simplified go-test-ci jobs
Reused a common target, as they were almost identical.
* op-deployer: update docker builds to install forge binary (#17304)
* op-deployer: include contracts build in 'just build' recipe
* modify build command to skip contracts build in ci
* install forge binary in op-deployer docker container
* lint and comment fixes
* remove Dockerfile.minimal
* always use docker bake to build and publish images
* op-program: Add hint for fast block hash lookup (#17449)
* chore(superchain-registry): bump version for addresses cleanup (#17404)
update to geth v1.101602.3-rc.1
* cleanup kt-devnets (#17455)
* cleanup kt-devnets
* ci: isthmus -> jovian
* update justfile
* dedupe
* activate jovian at genesis on jovian devnet
* op-acceptance-tests: Increase timeout for interop msg tests (#17492)
* op-acceptance-tests: Deflake TestPreNoBox by adjust Interop time to future (#17495)
* Revert "feat(op-acceptance-tests): op-acceptor v3.3.0 (#17467)" (#17502)
This reverts commit c813b04c9bd24a9b1088ec8a8e3a7598344633ff.
* op-devstack: op-sync-tester: Add configurable preset (#17491)
* op-devstack: op-sync-tester: Add sync tester config
* Use concrete orchestrator type
* refactor: introduce `IsFeature` toggles for Jovian (#17424)
* introduce IsMinBaseFee feature toggle
* add comment
* fix fn call (rename)
* fix test
* decouple features
* add operator fee fix toggle
* fix tests
* bump op-geth to mainline commit
* fix failing semgrep check (#17504)
* fix failing semgrep check
* add semgrep checks to pre-pr
* op-node: remove elSyncEnabled as it is a noop (#17425)
* remove hold job phase (#17506)
* op-sync-tester: Support EL Sync (#17516)
* op-sync-tester: Support EL Sync
* op-sync-tester: Rename to ELSyncActive
* proofs: Move proposer/challenger params on v2 contract (#17463)
* Make calldata length check overridable
* Rework calldata length check
* Make calldata length helpers more granular
* Update PDG to use CWIA for proposer and challenger
* Add a few more tests
* Cleanup - rework method name, comments
* Run just lint
* Fix test names
* Add some more tests around invalid FDG immutable args data
* Add tests around invalid immutable args when creating PDGv2
* Add some method documentation
* Regenerate snapshots, run semver-lock
* Simplify method name
* Fix notice natspec comments
* Clean up step tests
* Reorder auth check and call to super.initialize
* Add fuzz test to validate step() reverts for unauthorized actors
* Run semver-lock
* op-deployer: create generic forge.BytesScriptEncoder (#17524)
* op-deployer: create generic forge.BytesScriptEncoder
* add encoding support for arrays
* LivenessModule2 implementation (#17272)
* start
* DeployOwnership scripts update
* cleanup
* reset challangeStartTime when re-enabling the module
Co-authored-by: almanax-ai[bot] <174396398+almanax-ai[bot]@users.noreply.github.com>
* remove duplicated comment
* test cleanup
* fmt
* semverlock
* add livenessmodule2 to checkfrozenfiles
* address alcueca's feedback
* change ownershiptransfer logic
* pre-pr
* LivenessModule - Slightly simplified code (#17277)
* Slightly simplified code
---------
Co-authored-by: alcueca <alberto@yield.is>
* address smartcontract's feedback
* alcueca's feedback
* smartcontract's feedback
* add extra checks suggested by alcueca
* fix clear error
* update snapshots
* conflicts
* name nitpicks and coverage at 100%
* fix tests
* remove interface extra lines
* fix event on test
* rename isChallenged function to getChallengePeriodEnd
* update snapshots
* update implementation from specs
* sentinel owner and interface fix
* DRYness comments
* move getter at the top
* update comment
* rename event
* add _assertModuleConfigured
* add _assertModuleEnabled
* assert module enable fixes
* _cancelChallenge internal function
* fix comments
* more comments
* split configure errors
* owner transfer invariant
* address comments
* address kelvin's feedback
* lint
* more comments
* alcueca's comments
---------
Co-authored-by: almanax-ai[bot] <174396398+almanax-ai[bot]@users.noreply.github.com>
Co-authored-by: Alberto Cuesta Cañada <38806121+alcueca@users.noreply.github.com>
Co-authored-by: alcueca <alberto@yield.is>
* op-acceptance-tests: move presets into tests, away from config.yaml (#17519)
* op-acceptance-tests: move network presets into tests, away from config.yaml
* op-acceptance-tests: simplify defaults for TestSyncTesterExtEL
* op-acceptance-tests: add stack.ExtNetworkConfig
* feat: add U16a report (#17538)
* feat: add U16a report
* Update docs/security-reviews/README.md
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
---------
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
* fix(op-deployer): forge verbose install (#17540)
* fix(op-deployer): forge verbose install
* fix(op-deployer): add ci docker build job
* opcm: Support cannon+kona games in addGameType (#17513)
* opcm: Support cannon+kona games in addGameType
* opcm: Update test name validation
* opcm: Remove unnecessary skips.
* opcm: Simplify test
* fix(op-deployer): remove forge version check (#17541)
* feat(op-deployer): cli based integration tests (#17511)
* refactor(test-validation): extract exclusions to TOML config and add tests (#17510)
* refactor(test-validation): extract exclusions to TOML config file
- move hardcoded exclusion lists from Go code to external TOML configuration
- add TOML parsing with structured ExclusionsConfig type
- implement dynamic exclusions loading with fallback path resolution
* test(test-validation): add test coverage for test-validation functions
- add tests for all previously untested functions in main.go
- organize test functions to match source file order
* op-deployer: simplify ReadImplementationAddresses.s.sol (#17542)
* op-deployer: simplify ReadImplementationAddresses.s.sol
* fix semgrep finding
* use getEIP1967Impl helper function
* fix comment
* tests: Skip Interop Acceptance Tests (#17555)
* Skip Interop Acceptance Tests
* exempt TestSuperRootWithdrawal
* fix: errant comment in OptimismPortal2 (#17482)
* fix: simplified code for SystemConfig code (#17539)
* chore(op-acceptance-tests): isthmus into base gate. (#17514)
As Isthmus is on Mainnet, we now move this gate into the 'base' gate which should work against all devnets.
* txmgr: fetch BlobBaseFee over RPC instead of computing from block header (#17566)
* txmgr: fetch BlobBaseFee over RPC instead of computing from block header
This simplifies the transaction manager, meaning it does not need to understand the chain config of L1 in order to estimate fees properly (which, from Fusaka, it will otherwise need to do because the formula for computing the blob base fee from the excess blob gas changes frequently with BPO forks).
* fix TestIncreaseGasPriceLimits
* fix TestTxMgrConfirmsBlobTxAtHigherGasPrice
* Update op-service/txmgr/txmgr.go
Co-authored-by: Sebastian Stammler <seb@oplabs.co>
---------
Co-authored-by: Sebastian Stammler <seb@oplabs.co>
* op-acceptance-tests: Ext Network EL Sync Test using Sync Tester (#17532)
* op-devstack: Expose L2EthExtendedClient for shim L2EL
* op-devstack: L2 CL Signaler Logic using admin API
* op-acceptance-test: op-acceptance-tests: EL Sync Test Config
* op-acceptance-tests: Sync Tester External Network HF tests: SyncMode
* op-sync-tester: Fix Post Isthmus WithdrawalRoots check
* op-devstack: Logging when L2 CL Signaling
* op-devstack: Explict Read Only Ext L2EL
* op-acceptance-tests: Proper preset for EL/CL Sync Testing
* rebase and cleanup
* ci: Sync Tester EL Sync test for real world
* op-acceptance-tests: Proper genesis set for EL/CL Sync Testing
* fix test name
* deflake
* tame possible race
* op-acceptance-tests: Bump attempts for CL Sync testing (#17567)
* tools: add justfile command for updating op-geth (#17549)
* add just command for updating op-geth
* improve script
no dependence on jq
accept other git ref types
* txmgr: lock mutex when updating cachedTx map (#17570)
* feat(ops): add AI Contract Test Maintenance System v0.1.0 (#17560)
* feat(ops): add AI Contract Test Maintenance System v0.1.0
- Add new ai-eng directory for AI engineering projects
- Implement test ranking system with staleness-based scoring algorithm
- Add modular Python architecture for test file discovery and contract mapping
- Integrate with existing exclusion system from contracts-bedrock
- Add runbook.md document
- Add justfile integration for command-line execution
- Generate JSON output format for ranked test results
- Support git-based commit timestamp analysis for priority calculation
- Add CHANGELOG.md following
* fix(ops): clean up AI Contract Test Maintenance System files
- Remove generated ranking.json output file
- Remove CHANGELOG.md
- Fix formatting issues in runbook.md documentation
* refactor(ops): simplify AI Contract Test Maintenance System structure
- consolidate modular Python files into single test_ranker.py module
- trim runbook.md to essential info only (overview, usage, output)
- add .gitignore for Python projects and output files
* feat(ai-eng): add exclusion configuration for contract test maintenance
- Create exclusion.toml file with separate directory and file exclusions
- Update test_ranker.py to use centralized exclusion configuration
- Add tests without .sol counterparts to exclusion list
- Apply code formatting improvements to test_ranker.py
* all: update op-geth (based on go-ethereum v1.16.3) (#17547)
* update op-geth to: merge go-ethereum v1.16.3
https://github.com/ethereum-optimism/op-geth
* bump op-geth
* various fixes
* `params.HistoryServeWindow` changed
8192 -> 8191
https://github.com/ethereum/go-ethereum/pull/32127
* Updated op-geth to v1.101602.4-0.20250922085653-2f0528ba0ed5
* update op-geth
* update op-geth to v1.101603.0-rc.1
---------
Co-authored-by: geoknee <georgeknee@googlemail.com>
* fix: update spearbit reviews (#17576)
* feat(ai-contracts-test): add prompt renderer component (#17578)
* feat(ai-contracts-test): add prompt renderer component
- implement render.py script for prompt generation with placeholder replacement
- add prompt/ directory with canonical prompt template (prompt.md)
- extend justfile with new commands: just render and just prompt (combined workflow)
- update runbook documentation with multi-step workflow instructions
* fix(semgrep): exclude prompt files from sol-safety-trycatch-eip150 rule
* perf: explictly set compiler runs to 0 to reduce profiles (#17572)
* feat: add safety checks for lockbox in setFeature (#17559)
* feat: add safety checks for lockbox in setFeature
* fix: better comment
* add coverage for MIPS64 back (#17409)
* chore(op-acceptance-tests): ci; remove kurtosis jobs. (#17581)
Kurtosis is being deprecated.
* feat(ai-contracts-test): add devin API integration (#17602)
* feat(ai-eng): reorganize components into a /component folder
- move test_ranker.py to components/tests_ranker/
- move prompt renderer to components/prompt-renderer/
- update justfile commands to use new component paths
- update documentation to reflect new directory structure
* feat(ai-contracts-test): add run ID system for test ranking and prompt generation
- add unique run ID generation using datetime format (YYYYMMDD_HHMMSS)
- update ranking output to include run_id field in JSON metadata
- change ranking filename format to {run_id}_ranking.json
- update prompt renderer to extract run_id from ranking filename
- change prompt filename format to {run_id}_prompt.md
- add automatic cleanup of old ranking and prompt files
* feat(ai-contracts-test): add devin api client with session logging
- add devin_client.py with full Devin API integration
- add JSONL logging system for session tracking and audit trail
- extend justfile with devin and ai-contracts-test commands
- update runbook documentation with Devin workflow and logging details
- add log.jsonl to gitignore for session logs
* github: Add git cliff config for release notes generation (#17594)
* chore(op-acceptance-tests): op-acceptor v3.3.1 (#17515)
Updates op-acceptor to [v3.3.1](https://github.com/ethereum-optimism/infra/releases/tag/op-acceptor%2Fv3.3.1)
* opcm: Zero out cannon-kona game types in migrate. (#17523)
* opcm: Zero out cannon-kona game types in migrate.
Only active if dev feature is enabled.
* fix opcm semver bump
* bump opcm validator semver
* revert semver changes to OPCMStandardValidator
---------
Co-authored-by: inphi <mlaw2501@gmail.com>
* op-acceptance-tests: move sync-tester hardforks tests under one package (#17535)
* op-acceptance-tests: move all ext hfs tests to a single pkg
* op-acceptance-tests/hfs-ext: change Serial to Parallel
* op-acceptance_tests: consolidate hardforks_ext and sync_tester_hfs_ext
* op-service/httputil: move resp.Body.Close right after err check (#17611)
* feat: integrate creator pattern implementations in DeployImplementations.s.sol (#17329)
* feat: integration v2 implementations in DeployImplementations.s.sol + tests
* feat: add feature flag on and integrate deploy.s.sol
* feat: integrate deploy config and pass input struct values from config
* fix: configure a proposer in PDG
* fix: update the input struct for DeployImplementations.s.sol
* fix: implementation structs
* Update implementations_test.go
Co-authored-by: mbaxter <meredith@oplabs.co>
* fix: use previous direct casting appraoch
* feat: integrate new bitmap feature
* fix: delete old bool
* fix: lint
* feat: add proposer to the config
* fix: implementation struct usage in sepolia test
* fix: add proposer to the struct for integration tests
* fix: fund the proposer and add it to the supercahin config
* fix: constructor args for pdgV2
* revert: remove proposer changes from op-chain-ops and op-deployer
Reverted changes to op-chain-ops/interopgen and op-deployer/pkg/deployer
directories back to the develop branch version as these changes are no
longer necessary for this PR.
* fix: remove proposer from deploy and deploy implementations
* fix: add back struct params
* fix: use casting for Impleemntations struct
* Update packages/contracts-bedrock/scripts/deploy/DeployImplementations.s.sol
Co-authored-by: mbaxter <meredith@oplabs.co>
* Update op-deployer/pkg/deployer/bootstrap/implementations.go
Co-authored-by: mbaxter <meredith@oplabs.co>
* fix: remove modification of inputs ad revert if feature flag enabled
* Update packages/contracts-bedrock/scripts/deploy/DeployImplementations.s.sol
Co-authored-by: Inphi <mlaw2501@gmail.com>
* Update packages/contracts-bedrock/scripts/deploy/DeployImplementations.s.sol
Co-authored-by: Inphi <mlaw2501@gmail.com>
* fix: go back to v2 impl
* fix: missing import and simplify conditional for valid impl addresses
* fix: update check for correct nibble after kona consumed 0x010
* fix: remove unused import
* test: add assertions for constructor params
* test: add sensible fuzz input ranges
* feat: add reasonable constraints to deploys script and fuzz inputs
* fix: remove unused import
* refactor: add helper function and constant
* fix: move flags to their owner file
* fix: lint warning
* test: remove constraints on bitmap
* fix: remove input validation from deploy implemenations
* Revert "fix: remove input validation from deploy implemenations"
This reverts commit aa2557bf164854b9b917601fd32b8b542d3eef53.
* test: add splitdepth check
* test: update run with feature flag on and update asserts
* fix: add back superchain proxy admin and superchainConfigProxy
* fix: correct max game depth
* test: expand bounded values
* refactor: move asserts about v2 config params
---------
Co-authored-by: mbaxter <meredith@oplabs.co>
Co-authored-by: Inphi <mlaw2501@gmail.com>
* op-acceptance-tests: Disable `TestSyncTesterELSync` tests for flakiness (#17617)
* op-devstack: fix WaitForFinalization bug (#17618)
Previously, we waiting for the current finalized block to be finalized,
while the expected behavior is to wait for the current unsafe block
to be finalized. This is now documented as well.
* chore(op-acceptance-tests): op-acceptor v3.4.2 (#17623)
Updates op-acceptor to [v3.4.2](https://github.com/ethereum-optimism/infra/releases/tag/op-acceptor%2Fv3.4.2)
* op-node/rollup/clsync: test for popping the same element (#17608)
* refactor(test): improve Storage test coverage and quality (#17610)
* refactor(test): improve Storage test coverage and quality
- reorganize tests into function-specific contracts following codebase patterns
- convert all tests to proper fuzz tests with testFuzz_ naming
- organize test contracts to match source function declaration order
- enhance test documentation with proper @notice comments
- maintain existing comprehensive coverage for all 8 Storage library functions
* fix: address GitHub PR comments
- Move testFuzz_setGetBytes32Multi_succeeds to Storage_GetBytes32_Test
- Rename Storage_Unclassified_Test to Storage_Uncategorized_Test
- Add natspec comments for all fuzz parameters
* fix: address GitHub PR comments
- remove empty Storage_Uncategorized_Test contract
- rename testFuzz_setGetBytes32Multi_succeeds to testFuzz_getBytes32_multiSlot_succeeds for correct naming format
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* op-sync-tester: Retry block fetching when processing newPayload (#17624)
* op-sync-tester: Retry block fetching when processing newPayload
* op-acceptance-tests: Reenable TestSyncTesterELSync
* txmgr: allow blobs to be sent with fusaka-compatible cell proofs (sidecar version 1) by configuration (#17620)
* update batcher
* txmgr: log full tx hash to enable debugging
* cell proofs OFF by default
* thread configurable helper through to test code and add test TODOs
* wire up flag
* fix test
* op-e2e/actions: add EnableCellProofs config
* remove TODO
* use regular not atomic bool
* refactor MakeSidecar
* optimize creation of proofs slice
* feat: add rules for Diamond (#17640)
* contracts: Add new dispute game dev feature flags to bedrock test matrix (#17635)
* Integrate v2 dispute game feature flag into FeatureFlags setup util
* Add v2 flag to circleci matrix
* Add CANNON_KONA to test matrix
* fix: have acceptance job skip building contract tests (#17639)
Skips building contract tests in the acceptance job which reduces
the amount of memory used and decreases the chance of the job
being killed. Also makes it faster.
* op-e2e/actions: replicate geth txpool validation in `L1Miner.IncludeTx` (#17636)
* op-e2e/actions: replicate geth txpool validation in L1Miner.IncludeTx
* lint
* remove unecessary check
* op-node/rollup: remove ReceivedUnsafePayloadEvent event (#17530)
* op-node/rollup: remove ReceivedUnsafePayloadEvent event
* op-node/rollup: add lock around AddUnsafePayload
* op-deployer: setup forge callers for apply deploy scripts (#17637)
* op-deployer: prepare deploy scripts with forge invokers
* op-deployer: align test script with runWithBytes convention
* remove runWithBytes from DeployOPChain.s.sol
* op-e2e: Tweak EL Sync Test to check non genesis (#17440)
* fix(ai-contracts-test): handle 504 timeout, prevent duplicate work, prompt changes (#17616)
* fix(ai-contracts-test): handle 504 timeout and prevent duplicate work
- add 30s timeout and exponential backoff retry for Devin API server errors
- exclude files processed in last 7 days from ranking to avoid duplicate work
- add system version tracking to log entries
- minor cleanup: sort imports, remove shebangs and add invariants/ to exclusion list
- update runbook with latest changes
* fix(prompt): correct test naming, categorization, and assertion patterns
* update opcm.upgrade* natspec to explain the delegateCaller assumptions (#17644)
* update opcm.upgrade* natspec to explain the delegateCaller assumptions
* fix semver
* change semver
* feat: add ProtocolVersions to restrictions (#17651)
* feat: add ProtocolVersions to restrictions
* chore: snapshots
* sysgo: l1 geth subprocess support (#17619)
* refactor(test): standardize Unclassified to Uncategorized in test naming (#17650)
* refactor(test): standardize Unclassified to Uncategorized in test naming
- update test contract names from *_Unclassified_Test to *_Uncategorized_Test
- simplify checkTestMethodName function to only check for "Uncategorized"
- remove unused featureEnabledName parameter in checkTestMethodName
* Apply suggestion from @graphite-app[bot]
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
* Apply suggestion from @JosepBove
Co-authored-by: JosepBove <josep@oplabs.co>
---------
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: JosepBove <josep@oplabs.co>
* feat(op-acceptance-tests): kurtosis nightly tests. (#17658)
* add valid semver check script and tests (#17641)
* add valid semver check script and tests
* upgrade MERC20F in opcm.upgrade
* cleanup
* cleanup
* change semver
* op-node: refactor EngineController (#17647)
* op-node/rollup: merge CLSync with EngineController
* op-node/rollup: migrate CLSync tests to EngineController
* op-node/rollup: use e.requestForkchoiceUpdate instead of emit
* op-node: renames
* op-node: lock unit test expectation
* op-node: better comments
* op-node: EngineController: Proper locking (#17648)
* op-node: EngineController: Proper locking
* op-node: EngineController: proper tryUpdateEngine sync
* stick to rwlock for simplicity
* Remove goroutine limit since race solved
* proper locking for ForceReset
* fix rebase
* fix locking
* op-deployer: ensure standard forge version matches mise (#17670)
* chore(op-acceptance-tests): ci; discord notifications. (#17672)
- Update Platforms notification from user 'stefano' to role 'protocol devx pod'
- Remove 'changwan' from Kurtosis notifications
* clean(op-acceptance-tests): ci; consolidate workflows. (#17673)
We no longer need a separate workfor for pre/post-merge to develop.
* all: update op-geth to "fusaka defence cherry pick" commit (#17661)
* updated op-geth to v1.101603.0-synctest.0.0.20250930110811-5eee1eab50e6
pairs with https://github.com/ethereum-optimism/op-geth/pull/690
* Updated op-geth to v1.101603.1-rc.1
* opcm: Add unit tests around DevFeatures (#17643)
* Add unit tests for DevFeatures.sol, fix logic
* Port changes and tests to go util
* Bump contract versions
* Run semver-lock
* Align test names with existing conventions
* ci: Add nightly heavy fuzz testing job (#17668)
* ci: Add nightly heavy fuzz testing job
- Add contracts-bedrock-heavy-fuzz-nightly job using ciheavy profile
- Configure for 20000 fuzz runs, 128 invariant runs, 512 depth
- Schedule via build_daily (nightly at 2 AM UTC)
- Add heavy_fuzz_dispatch parameter for manual testing
- Set 90m timeout for comprehensive fuzzing
* Update .circleci/config.yml
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
* ci: Address PR feedback - remove unnecessary steps
- Remove 'Lint forge test names' step from nightly job
- Remove contracts-bedrock-build from workflow (job builds as needed)
- Update dependency to initialize directly
Addresses feedback from @mds1 and @aliersh
* ci: Restore duplicate generate-flaky-report section
Restores the duplicated generate-flaky-report job that was removed
during merge conflict resolution in b379b03. The duplicate section
was part of the develop branch changes and should not have been
removed as it was outside the scope of this PR.
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Ariel Diaz <65925295+aliersh@users.noreply.github.com>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
* op-acceptance-tests: introduce flake-shake system (#…
Description
Attempt to make the sync service backwards compatible with the latest change to the dtl that encodes the
gasLimitas a string