Skip to content

Develop -> Master#2264

Merged
mslipper merged 58 commits intomasterfrom
develop
Mar 7, 2022
Merged

Develop -> Master#2264
mslipper merged 58 commits intomasterfrom
develop

Conversation

@mslipper
Copy link
Collaborator

@mslipper mslipper commented Mar 7, 2022

  • readme: update docs around doing releases
  • added internal/external import seperation on integration tests
  • Remove unnecessary contract references in integration-tets
  • feat: fix teleportr ci, and lint target
  • feat: move L2 dial logic out of bss-core
  • feat: use uint64 for deposit ids and block numbers
  • feat: replace LastestDeposit with LastProcessedBlock
  • feat: add vim swap files to gitignore
  • feat: add teleportr flags and config
  • feat: add teleportr binary and Makefile skeleton
  • feat: add teleportr deposit + disburser bindings
  • feat: add FindFilterStartBlockNumber helper
  • feat: add PendingTx tracking to teleportr db
  • feat: add success field to teleportr disbursement table
  • ci: Update nightly address manager addr, notify on itest failures
  • feat: add teleportr driver
  • fix: teleportr CI env vars (round 2)
  • core-utils: update batch serialization
  • batch-submitter: add typed batch support
  • dtl: enable typed batch support
  • go-batch-submitter: enable typed batch support
  • itests: add coverage for compressed batches
  • deps: update
  • ops: fix config
  • ci: run for each batch type
  • ci: simplify integration test matrix
  • feat: always run go unit tests on every PR
  • integration-tests: Fix merge issue
  • contracts: fetch-batches hardhat task
  • core-utils: add toJSON methods on batch primitives
  • fix(rhc): fix dockerfile bug
  • contracts: fix bug in fetch batches script
  • fix(bridge): Corrected a comment
  • test(contracts): increase code coverage
  • feat: remove TS BSS from itests + Docker
  • feat: remove packages/batch-submitter
  • feat(sdk): add fn to wait for message status
  • fix(ct): remove yargs as unused dep
  • l2geth: Add support for system addresses

tynes and others added 30 commits January 5, 2022 13:16
Also fixes a linter error that wasn't caught while the CI was broken.
feat: fix teleportr ci, and lint target
This avoids having l2geth as a dependency for other projects building on
bss-core. Speicifically this avoids having to copy l2geth into docker
builds.
Currently the teleportr database supports a LatestDeposit method,
which returns the highest block number observed, if any. The intent was
to use this as the starting point for syncing, however, this isn't super
useful as there may be long periods of inactivity that we have already
scanned.

Instead, we now store the last processed block in a separate table, and
pass the end of the ingestion block range as argument to UpsertDeposits.
The list of deposits and last processed block are written atomically to
avoid consistency issues. The value can be retrieved using the
LastProcessedBlock getter.
Update the batch serialization to allow for typed batches.
Also include logic for type 0 batches, which are compressed
with zlib.
Enable typed batch support in the batch submitter.
Type 0 batches (zlib compressed) can be enabled with
the env var `BATCH_SUBMITTER_SEQUENCER_BATCH_TYPE=zlib`
or via the flag `--sequencer-batch-type zlib`.
The data transport layer will now be able to index
typed batches. A typed batch has the first batch context
have a timestamp of 0 and the blocknumber is used as an
enum to determine the type of the batch.

It is not possible to have a timestamp of 0 in realistic
conditions. Batches that have a non zero timestamp
as the first batch context are considered a legacy batch.

The first typed batch is type 0 where the blocknumber is 0
and the transaction data is compressed with zlib.
Allow the go batch submitter to submit typed batches.
The env var `BATCH_SUBMITTER_SEQUENCER_BATCH_TYPE=zlib`
can be set to enable the submission of zlib compressed
batches. If that env var is not set, then legacy batches
will be submitted instead.
Update the docker compose config such that the
batch submitters submit type 0 batches (zlib compressed)
and then add an integration test for that functionality.
This commit updates the config so that the CI can run
the batch submitters in each mode so that we continue
to test each of the batch types.

It also lints the yaml files
ci: Update nightly address manager addr, notify on itest failures
The current methodology only attempts to run unit tests when changes to
the package paths are detected. However, this is brittle and most
notably doesn't capture when changes are made to the workflow itself. As
a result, a green build in a PR doesn't neccessarily correlate to a
green build after merge. Unit tests are cheap, so this should prevent
needless false positives.
tynes and others added 16 commits March 3, 2022 11:36
This commit increases the statement and branch coverage of the contracts
package. More specificall the contracts that were covered are:

- AddressDictator
- ChugSplashDictator
- L1CrossDomainMessenger
- L1StandardBridge
- CanonicalTransactionChain
- ChainStorageContainer
- StateCommitmentChain
- L2CrossDomainMessenger
- L2StandardBridge
- WETH9
- Lib_OVMCode
- Lib_RLPWriter
- Lib_SecureMerkleTrie
- Lib_Buffer
- Lib_MerkleTree
…ackage

increase coverage of contracts package
Adds a function to the SDK (waitForMessageStatus) which will wait until
the status of a particular message matches the target status.
waitForMessageStatus also handles certain special cases where different
status messages are incompatible (e.g., the RELAYED and
FAILED_L1_TO_L2_MESSAGE status for L1 to L2 messages). Useful to avoid
including looping logic in your own application.
Removes yargs as a dependency from the contracts package since it wasn't
being used. Always good to cut unused dependencies.
feat(sdk): add fn to wait for message status
Adds support for system addresses.

To deploy to a system address, the deployer must either be in the list of hardcoded addresses described in `SystemAddressDeployers`, or be specified via the `SYSTEM_ADDRESS_0_DEPLOYER`/`SYSTEM_ADDRESS_1_DEPLOYER` environment variables. The hardcoded system addresses deployers will always override those placed in the environment, so specifying the `SYSTEM_ADDRESS_*` env vars on mainnet, Kovan, or Goerli is a no-op. The env vars are available primarily for testing purposes.

The contract deployment **must** be the first transaction from the deployment address - i.e., it must have nonce zero.

In order to make the tests work, I had to change the integration tests chain ID to no longer conflict with Goerli. The new integration tests chain ID is `987`.

Co-Authored-By: @Inphi
l2geth: Add support for system addresses
@changeset-bot
Copy link

changeset-bot bot commented Mar 7, 2022

🦋 Changeset detected

Latest commit: 82465db

The changes in this PR will be included in the next version bump.

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

@github-actions github-actions bot added 2-reviewers A-op-batcher Area: op-batcher M-ci Meta: ci related work A-pkg-core-utils Area: packages/core-utils A-integration Area: integration tests A-cannon Area: cannon A-ops Area: ops A-pkg-sdk Area: packages/sdk labels Mar 7, 2022
@codecov-commenter
Copy link

codecov-commenter commented Mar 7, 2022

Codecov Report

Merging #2264 (82465db) into master (a21cec6) will increase coverage by 5.66%.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #2264      +/-   ##
==========================================
+ Coverage   74.42%   80.08%   +5.66%     
==========================================
  Files          79       77       -2     
  Lines        2545     2460      -85     
  Branches      397      450      +53     
==========================================
+ Hits         1894     1970      +76     
+ Misses        651      490     -161     
Flag Coverage Δ
batch-submitter ?
contracts 99.29% <ø> (+8.80%) ⬆️
core-utils 86.77% <ø> (+29.27%) ⬆️
data-transport-layer 49.72% <ø> (+11.07%) ⬆️
message-relayer ?
sdk 55.75% <ø> (-31.32%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
packages/sdk/src/utils/coercion.ts 78.94% <0.00%> (-9.52%) ⬇️
packages/sdk/src/index.ts 100.00% <0.00%> (ø)
packages/sdk/src/utils/index.ts 100.00% <0.00%> (ø)
packages/core-utils/src/index.ts 100.00% <0.00%> (ø)
packages/sdk/src/interfaces/index.ts 100.00% <0.00%> (ø)
packages/sdk/src/interfaces/types.ts 100.00% <0.00%> (ø)
packages/core-utils/src/common/index.ts 100.00% <0.00%> (ø)
packages/sdk/src/utils/message-encoding.ts 100.00% <0.00%> (ø)
packages/core-utils/src/common/test-utils.ts 95.55% <0.00%> (ø)
packages/data-transport-layer/src/utils/index.ts 100.00% <0.00%> (ø)
... and 68 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a21cec6...82465db. Read the comment docs.

@mslipper mslipper merged commit 2833f2b into master Mar 7, 2022
theochap pushed a commit that referenced this pull request Dec 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-cannon Area: cannon A-integration Area: integration tests A-op-batcher Area: op-batcher A-ops Area: ops A-pkg-core-utils Area: packages/core-utils A-pkg-sdk Area: packages/sdk M-ci Meta: ci related work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants