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

crunchy tiger 0.0.1 #195

Merged
merged 646 commits into from
Jul 15, 2021
Merged

crunchy tiger 0.0.1 #195

merged 646 commits into from
Jul 15, 2021

Conversation

InoMurko
Copy link

You need to have containers for release! So here it is (again)!

Crunchy tiger is the first ever OMGX release - more of an alpha release process test - but a release nevertheless!

Onward and Upward!

annieke and others added 30 commits June 21, 2021 15:44
* [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>
…timism#1138)

* fix[relayer]: update exported files

* chore: add changeset
* fix: correct import path for altered contract path

* chore: add changeset
…imism#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
* remove listeners and use loop to find tx receipt

* add yarn ready

* moved filters inside loop

* [added] changeset
* chore: add minimal vscode settings and extensions

* chore: Add "files.trimTrailingWhitespace" to vscode native config

* chore: replace vscode prettier plugin with eslint plugin
…um-optimism#1144)

* fix[contracts]: remove part of MultiMessageRelayer deployment

* chore: add changeset
…Set (ethereum-optimism#1129)

* Update service.ts

* Create thirty-years-look.md

Co-authored-by: smartcontracts <kelvinfichter@gmail.com>
* Easy fix for broken watchers

* Ran yarn changeset

Co-authored-by: Liam Horne <liam@lihorne.com>
* go: add utils module

* readme: update
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Add mainnet deploy script

* Update mainnet.sh

* Address PR review feedback
* 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
* feature: l2geth  endpoint

* chore: add changeset

Co-authored-by: Liam Horne <liam@lihorne.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…timism#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
* 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>
* wip

* gethl2

* wip

* batch submitter

* core utils

* DTL

* message relayer

* contracts

* wip

* Update service.ts

* DTL

* messaage-relayer

* Update yarn.lock

* final 5 files
* 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>
* Create docker-compose-replica.yml

* Add replica service

* Update docker-compose-omgx-replica.yml

Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
tynes and others added 15 commits July 9, 2021 14:41
…ci-versions

ci: handle gas-oracle latest image, skip builder
…task-linting

contracts: lint the tasks directory
This PR improves the logging in the `gas-oracle`
…mock-multiple-arrays

maintance[smock]: add test and docs for returning multiple arrays
…oracle/logging

gas-oracle: improve logging
* Add Rinkeby deployer

* Update README.md
* Fix batch submitter

* Fix batch submitter
Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* feat: add proxy pattern

* feat: add proxy pattern

Co-authored-by: CAPtheorem <79423264+CAPtheorem@users.noreply.github.com>
* fix: Add missing dependencies and modify truffle invocation

* fix: Revert change to docker-compose

* fix: Checkout master docker-composoe.yml

* added some logging tothe scripts and bumped the rbac.authorization.k8s.io api version

* updates with terraform related extensions

* adds main file with providers

* adds vpc and related resources

* adds tfvars file used for testing purposes

* adds firewall rule for data dog egress traffic

* adds local testing

* adds vpc outputs

* fixes typo

* splits datadog fw rules

* fix output

* adds beta provider

* ignoring tfvars

* adds local testing instance

* fix typo

* fix outputs and typos

* removes tfvars

* adds vpc peering

* adds connectivity requirements from omisego vpc

* adds openvpn install script as backup

* adds vpn instance and required resources

* adds vault to instance for testing

* removes dup rule

* fixes zone reference

* fixes format errors

* parameterize zone

* organizes and adds testing/validation readme

* removed weird carriage returns

* few spelling and formatting fixes

* few spelling and formatting fixes

* add command to retrieve ovpn file to terraform output. some typos

* add command to remove ovpn file to terraform output

* need a token to enable logging

* unsealer vault scripts and doc

* unsealer listens on 0.0.0.0 and cert trusts vpn

* batching needs to be disabled if there are any connectivity issues

* keyshares should be 5:3, environment variables source-able script

* populate the unsealer vault with keys

* the unsealer directory should be prefixed with etc

* terraform to create consul cluster

* adds priorities and conditional egress rules

* update vault helm chart and add terraform resource for modifying chart values for installation

* notes for matt

* fix helm hook for deleting vault acl init, separation of k8s tf logic, tf for delete k8s bootstrap acl token secret and writing it to vault

* notes for matt

* simplified playground

* consul service in custom omisego helm chart

* custom consul helm chart for omisego with acl init and bootstrap token retrieval

* update README, finish vault acl init k8s job, update terraform for vault acl secret cleanup

* consul helm chart template renaming

* tls enablement and cert creation

* try using openssl instead of cfssl

* acl init cleanup job

* try using openssl instead of cfssl

* update initialize script

* finalize consul chart and initial vault attempt

* working vault/consul sidecar helm chart installation and unsealing

* add vault service ingress resource and use client ACL token for sidecar agents

* local registry and minikube for testing

* helm chart tls refactoring

* refactor k8s terraform scripts

* remove local registry test files

* refactor k8s terraform and add gke to infrastructure scripts

* fix vault seal config with tls disabled

* change k8s tls default to true and make unsealer vault addr variable

* mlock needs to be set in local testing

* helper scripts to test with local registry

* helper scripts to test with local registry

* add image config to k8s terraform and update consul post-install hooks

* revert secret management and fix consul retry-join logic

* fix consul agent start commands

* remove togglable tls and fix consul agent / server joining

* add consul set disruption budget to help with scaling

* configure plugin directory and turn off UI.

* configure plugin directory and turn off UI.

* fix terraform for destroy orphan k8s secrets, parameterized vault service type for GKE load balancing

* fix consul dns and ui, resolve node name conflicts with vault sidecar agents

* test backup and restore - use recovery flag for restore

* k8s terraform conditional data sources

* add vault ha address environment variables

* update recovery docs and tf output

* add gcr creating to main infrastructure scripts

* update README and bash script to tag and push gcr.io images

* remove local testing k8s tf code for cleanup

* add the ability to supply a gas price - this overrides the estimated price

* Removed unnecessary functionality

* smoke test for user supplied gas price

* Started API documentation

* Documentation - API.md file

* Ino's request: is there a way to actually use storage I could backup and continue using it

* use go 1.14 as builder. remove vendored deps. remove activateChildChain. bumpt to v1.9.16 geth

* stupid gitignore - was preventing vault.hcl

* Ino's request: is there a way to actually use storage I could backup and continue using it

* update gcr process

* replace helm charts with public vault chart

* gcr and infrastructure tf upgrade

* fix gcr service account role bindings

* strip consul from terraform and helm charts

* remove unused terraform

* update naming of omisego to omgnetwork in scripts

* restructure infrastructure directory for both tf and helm

* Initial helm chart to support raft + auto unseal

* Use RAFT as the vault backend
* Auto-Unseal using a KMS Key
* Filled out the vault-overrides file
* Created a README on how to runt his in helm

* placeholder for vault helm image and tag overrides

* adjust helm overrides and terraform gcp kms"

* Updating the helm chart to be easier to use:

* Updated README instructions
* No longer use the local vault helm chart, use the official one from
hashi (files to be removed later)
* Standardize names of resources

* Removing the local vault helm chart since we're using the official one
now

* Adding my changelog edits

* Moved some refactor to new features

* golang 1.14 as the builder; support snapshotting

* nuke the unsealer directory

* update changelog and infura egress rule

* update version file and add circleci config

* Updating the README for working between vault and minikube

* separate KMS process, documentation overhaul, terraform cleanup

* update docs, scripts, helm overrides

* need folder to exist for circleci - works locally

* Adding in the affinity changes and helm/tls documentation

* test to see which user is running

* using different directories in an effort to get circleci to build

* changing the user

* Improvements for RAFT handling, Addition of PVCs

* Setting vault back to version 1.5.2

* Fix the vault-overrides to account for raft peering

* remove docker-compose up from circleci - impedance mismatch with design

* Updates to run the vault helm chart on GKE

* Increase number of vault nodes, enable audit

* Turning on UI

* Automate more of the initial setup, increase node pool size

* Create the gen_overrides.sh script and enable audit logging

* Minor edits to the README

* Add Regional/SSD StorageClasses for data

* add loadbalancer service to helm overrides

* Merge

* Remove unnecessary log message

* Update the README to remove the port-forward note

* Fix unbound variables

* Adding notes on Backup / Restore of Vault RAFT Snapshots

* datadog overrides for helm

* install gcloud sdk into ubuntu machine for circleci

* persist docker image

* readd circleci job filters

* clean out provider versions file for terraform

* readd datadog to terraform for cidr block data

* dont execute tests just migrate

* Adding in the process for updating certs, updating overrides a bit

* only --build on test

* fix errorneous path in the documentation; create skinny vault

* remove testing

* bringing network code back into the branch for experimentation

* remove submitDepositBlocker

* pull nonce if present

* test in ci and nonce

* own mounted volumes

* sequential nonce

* update testing, strict API

* idk go

* correct path

* stand up vault

* rm dependencies

* Adding scripts for backup and restore

* Document the backup/restore scripts

* Updating the CHANGELOG

* Add a guard

* stricter API, abort when empty

* stricter API, abort when empty

* Updating changelog

* Updated the date in changelog

* Adding back in the VPN VPC

* combine old vpn with current infrastructure terraform scripts

* resolve cluster pod and service cidr blocks not being added to vpc peering subnet

* update docs for vpn and cidr block changes

* hotfix docs and firewall rule source

* accidentally checked in executable

* update firewall rule for omgnetwork cidrs

* Fix the location of the CACERT file

* remove openvpn instance from infrastructure terraform

* block root as base64, rem unused paths, validate config input

* add dns peering for gke

* refactor base64 decoding and slicing

* check block root size

* nonce should be 1

* nonce should be 1

* Adding load balancer support

* fix: ensure pods have k8s labels

This enables Kubernetes Service Registration, which means that the Vault
pods get the correct labels. Without this, the vault-active service is
broken, it can never identify the master in the Vault cluster.

* Disable ui and ingress

* Fix gen_overrides script and add note to readme

* Change LB to choose vault-active instead of vault

* feat: k8s self-signed issuer with cert-manager

Add a helm chart for installing cert-manager, along with a chart for
installing a self-signed certificate issuer. They need to be installed
sequentially, because cert-manager installs new CRDs into Kubernetes,
and won't take issuers in the templates when you use cert-manager as a
dependency.

* fix: add missing -c flag to gen_overrides.sh

* chore: remove gen_certs.sh and certs dir

As far as I can tell, this script is completely deprecated by
cert-manager.

* feat: create custom vault chart with certificate

Move the existing vault-overrides.yaml to the values.yaml of a dedicated
chart, which also includes a template for using the self-signed
certificate from cert-manager.

gen_overrides.sh is updated accordingly.

* chore: move storage to the vault chart

* chore: remove deprecated vault-overrides.yaml

* docs: update usage of vault chart

* fix: update tls filenames

* fix: serialise docker-compose network creation

This should fix the flaky CI build. I don't think this will add very
much to the build runtime, as vault_server needs to wait on truffle
anyway.

* fix: add sleep to prevent docker network race condition

* feat(terraform): make vault cluster dev-ready

Changes to the terraform for Vault cluster deployment in order to make
it suitable for dev:

* Dev storage read permission granted to the nodes for pulling the omgnetwork/vault container.
* DNS zone for DNS-01 challenges and a record for the ingress IP
* DNS admin permission for the cluster to add records for the DNS-01 challenge.

* fix: move all /home/vault to /vault

The Vault helm chart overwrites /home/vault with an empty dir:

https://github.com/hashicorp/vault-helm/blob/f6c9d5837bfa260081c9311e75ffd48efa8f75af/templates/server-statefulset.yaml#L121-L122

Sadly, the plugin for our image gets lost underneath the mount.

The simplest fix, as far as I can tell, is to use the /vault directory
for deploying the plugin instead, so this commit re-homes vault config.

And bump semver to 0.0.7

* feat: add issuers for self-signed / letsencrypt certificates

* feat: add Traefik for ingress

* feat: use ingress with SSL for Vault, update Vault image

* docs: update supporting scripts and documentation

* expanding config/ adding test validation

* fix tests

fixing tests

fixing tests

* test everything and valite

* generate go bindings for contracts with go-e abigen

* appendStateBatch call API

* appendStateBatch call API tests working

* re-enable pathOvmAppendSequencerBatch, figure out how to manually call raw AppendSequencerBatch

* enabled tests, raw calldata submission

* revert go.sum

* Immutability into monorepo, into omgx subfolder

Co-authored-by: jbunce <jake@omisego.co>
Co-authored-by: immutability <jeff@immutability.io>
Co-authored-by: Cesar Rodriguez <cesar@immutability.io>
Co-authored-by: Matthew Callens <callensmatt@gmail.com>
Co-authored-by: Jake Bunce <jbunce@users.noreply.github.com>
Co-authored-by: ftcjeff <ftcjeff@gmail.com>
Co-authored-by: Ino Murko <ino.murko@outlook.com>
Co-authored-by: immutajeff <69120189+immutajeff@users.noreply.github.com>
Co-authored-by: Michael Captain <michael@omg.network>
* create release images

* create containers for develop and add gas-oracle
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.