- 04 Oct, 2022 1 commit
-
-
Matthew Slipper authored
The Geth RPC client does not support subscriptions for HTTP endpoints. As a result, users who set an HTTP endpoint for the op-node were unable to sync since the driver never got any L1 head updates. This PR adds a wrapper around `client.RPC` that makes `newHeads` subscriptions work over HTTP. It does this by layering a notifications system that mimicks what Geth does under the hood on top of an HTTP polling loop. The interface is the same as the one exposed by the raw RPC client. I tried my best to match Geth's subscription semantics, including: - Closing the client causes all subscribers to get a nil error on their error channels. - Unsubscribing closes each subscriber's error channel. - Calling `Unsubscribe` multiple times is safe. The poll rate is configurable. It default to 250ms, which should be fine for both L1 and L2. I tried at first to use Geth's underlying libraries, but found that it was impossible to do so without making changes to Geth itself to export more fields. This system is also simpler, and gives us room to instrument the polling loop in the future. The wrapper is not integrated with the rest of the system in this PR. I'll stack those changes on top of this one so we can review this in isolation. Totally open to different solutions here - marking as draft to reflect the fact that if there's a better way to do this, I'm happy o close this + the dependent PRs and go a different route. Meta: - Fixes ENG-2490
-
- 03 Oct, 2022 2 commits
-
-
Matthew Slipper authored
* ci: Parallelize op-e2e Replaces my previous PRs since `t.Parallel()` works fine. Also exposes the listener on the op-node, so that we can use a port of zero and allow the kernel to allocate a port. * close other geth nodes * missed one * use t.cleanup
-
protolambda authored
-
- 01 Oct, 2022 8 commits
-
-
Zach Howard authored
-
Matthew Slipper authored
op-e2e: Action testing L2 Engine Block building
-
Matthew Slipper authored
-
Matthew Slipper authored
op-e2e: Action testing L2 engine (without block building)
-
mergify[bot] authored
-
Maurelian authored
* ctb: Remove unused event in tests * ctb: Initial clean up of L1StdBridge tests Breaks the test suite up in to test contracts. Each state changing method has its own contract for happy tests and another for sad tests. * chore: Bindings Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
protolambda authored
-
protolambda authored
-
- 30 Sep, 2022 4 commits
-
-
Mark Tyneway authored
* ctp: deploy goerli nft bridge fixes Test on kovan * ctp: goerli nft bridge deployment artifacts * ctp: delete kovan bridge artifacts * ctp: revert deploy script * ctp: add goerli nft bridge deployment changeset
-
protolambda authored
Co-authored-by:
Mark Tyneway <mark.tyneway@gmail.com>
-
protolambda authored
* op-e2e: action testing L1 replica actor * op-e2e: action testing L1 miner (#3607) * op-e2e: remove unused empty actors file
-
Maurelian authored
Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
- 29 Sep, 2022 25 commits
-
-
Maurelian authored
-
Maurelian authored
-
Matthew Slipper authored
-
Matthew Slipper authored
-
Matthew Slipper authored
-
Matthew Slipper authored
-
Matthew Slipper authored
-
protolambda authored
Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
Matthew Slipper authored
* op-node: ParseWithdrawalInitiated improvements `ParseWithdrawalInitiated` used to pass every log to `abi.EventByID`. Since `abi.EventByID` was bound to the `L2ToL1MessagePasser` contract, any logs on the receipt from a different contract would cause this function to return an error. This breaks support for parsing withdrawal events initiated by the `L2StandardBridge`, since the bridge adds many events of its own. This PR updates `ParseWithdrawalInitiated` to use the hex-encoded withdrawal intiated topic to determine which log messages to use instead. * add extension 1 * Update op-node/withdrawals/utils.go Co-authored-by:
protolambda <proto@protolambda.com> * Update op-node/withdrawals/utils.go Co-authored-by:
protolambda <proto@protolambda.com> * Update op-node/withdrawals/utils.go Co-authored-by:
protolambda <proto@protolambda.com> * add docstring * use shared lib Co-authored-by:
protolambda <proto@protolambda.com> Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
Mark Tyneway authored
These changes make the `OptimismMintableERC721Factory` in line with the bedrock version of the `OptimismMintableERC20Factory`. We might as well follow what we are doing with the new erc20 factory to keep things in line with each other. These changes are very small, they just rename a function to not follow the deprecated naming scheme, the function now returns an address which makes testing/integration a bit easier and also does a slight refactor to prevent the need to cast a type 3 times. Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
Mark Tyneway authored
-
Mark Tyneway authored
Use the companion network config to ensure that the correct artifact is being used. Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
Maurelian authored
-
protolambda authored
-
protolambda authored
Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
protolambda authored
Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
Matthew Slipper authored
Version Packages
-
github-actions[bot] authored
-
Matthew Slipper authored
Develop -> Master
-
protolambda authored
* op-e2e/actions: action tests base test util * actions: extend action testing doc comments * actions: docstring about format and args Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
Matthew Slipper authored
op-node: Switch L1 Traversal to a pull based model
-
Matthew Slipper authored
-
Matthew Slipper authored
op-node: Switch L1 Retrieval to pull based
-
Matthew Slipper authored
op-node: Switch channel bank and channel in reader to a pull based stage
-
Matthew Slipper authored
op-node: Switch batch queue to be pull based
-