Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ithacaxyz/odyssey
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.1.1
Choose a base ref
...
head repository: ithacaxyz/odyssey
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Loading
Showing with 3,528 additions and 2,402 deletions.
  1. +1 −1 .config/nextest.toml
  2. +13 −0 .github/assets/Dockerfile
  3. +1 −1 .github/workflows/dependencies.yml
  4. +61 −0 .github/workflows/e2e.yml
  5. +4 −2 .github/workflows/integration.yml
  6. +1 −1 .github/workflows/lint.yml
  7. +2 −1 .github/workflows/unit.yml
  8. +1,684 −1,586 Cargo.lock
  9. +163 −51 Cargo.toml
  10. +48 −0 Dockerfile.relay
  11. +64 −0 Makefile
  12. +38 −24 README.md
  13. +1 −1 SECURITY.md
  14. +5 −3 bin/odyssey/Cargo.toml
  15. +94 −38 bin/odyssey/src/main.rs
  16. +40 −0 bin/relay/Cargo.toml
  17. +89 −0 bin/relay/src/main.rs
  18. +1 −1 clippy.toml
  19. +1 −11 crates/{precompile → common}/Cargo.toml
  20. +8 −0 crates/common/src/constants.rs
  21. +7 −0 crates/common/src/lib.rs
  22. +8 −10 crates/{testing → e2e-tests}/Cargo.toml
  23. +6 −0 crates/e2e-tests/src/lib.rs
  24. +203 −0 crates/e2e-tests/src/tests.rs
  25. +26 −3 crates/node/Cargo.toml
  26. +31 −0 crates/node/src/broadcaster.rs
  27. +16 −20 crates/node/src/chainspec.rs
  28. +146 −0 crates/node/src/delayed_resolve.rs
  29. +63 −41 crates/node/src/evm.rs
  30. +23 −0 crates/node/src/forwarder.rs
  31. +11 −7 crates/node/src/lib.rs
  32. +73 −44 crates/node/src/node.rs
  33. +109 −0 crates/node/src/rpc.rs
  34. +0 −3 crates/precompile/src/addresses.rs
  35. +0 −14 crates/precompile/src/lib.rs
  36. +0 −193 crates/precompile/src/secp256r1.rs
  37. +0 −8 crates/testing/resources/eip3074/foundry.toml
  38. +0 −1 crates/testing/resources/eip3074/out/BaseAuth.sol/BaseAuth.json
  39. +0 −1 crates/testing/resources/eip3074/out/GasSponsorInvoker.sol/GasSponsorInvoker.json
  40. +0 −1 crates/testing/resources/eip3074/out/SenderRecorder.sol/SenderRecorder.json
  41. +0 −54 crates/testing/resources/eip3074/src/BaseAuth.sol
  42. +0 −36 crates/testing/resources/eip3074/src/GasSponsorInvoker.sol
  43. +0 −11 crates/testing/resources/eip3074/src/SenderRecorder.sol
  44. +0 −9 crates/testing/src/lib.rs
  45. +0 −4 crates/testing/src/tests.rs
  46. +8 −3 crates/wallet/Cargo.toml
  47. +307 −212 crates/wallet/src/lib.rs
  48. +25 −0 crates/walltime/Cargo.toml
  49. +107 −0 crates/walltime/src/lib.rs
  50. +1 −0 deny.toml
  51. +39 −6 etc/kurtosis.yaml
2 changes: 1 addition & 1 deletion .config/nextest.toml
Original file line number Diff line number Diff line change
@@ -2,5 +2,5 @@
serial-integration = { max-threads = 1 }

[[profile.default.overrides]]
filter = 'package(odyssey-testing)'
filter = 'package(=odyssey-e2e-tests)'
test-group = 'serial-integration'
13 changes: 13 additions & 0 deletions .github/assets/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
FROM ubuntu

COPY dist/odyssey /usr/local/bin

# Copy licenses
COPY LICENSE-* ./

# Copy the genesis files
ADD etc/dev-genesis.json ./etc/dev-genesis.json
ADD etc/odyssey-genesis.json ./etc/odyssey-genesis.json

EXPOSE 30303 30303/udp 9001 8545 9000 8546
ENTRYPOINT ["/usr/local/bin/odyssey"]
2 changes: 1 addition & 1 deletion .github/workflows/dependencies.yml
Original file line number Diff line number Diff line change
@@ -52,7 +52,7 @@ jobs:
echo "EOF" >> $GITHUB_OUTPUT
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
uses: peter-evans/create-pull-request@v7
with:
add-paths: ./Cargo.lock
commit-message: ${{ steps.msg.outputs.commit_message }}
61 changes: 61 additions & 0 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Runs E2E tests against Kurtosis.

name: e2e

on:
pull_request:
merge_group:
push:
branches: [main]

env:
CARGO_TERM_COLOR: always

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
e2e:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- uses: taiki-e/install-action@nextest
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Install Kurtosis
run: |
echo "deb [trusted=yes] https://apt.fury.io/kurtosis-tech/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list
sudo apt update
sudo apt install kurtosis-cli
- name: Build Odyssey
run: |
cargo build --profile release --locked --bin odyssey &&
mkdir dist/ &&
cp ./target/release/odyssey dist/odyssey &&
docker buildx build . --load -f .github/assets/Dockerfile -t ghcr.io/ithacaxyz/odyssey:latest
- name: Run enclave
id: kurtosis
run: |
kurtosis engine start
kurtosis run --enclave op-devnet github.com/ethpandaops/optimism-package --args-file ./etc/kurtosis.yaml
ENCLAVE_ID=$(curl http://127.0.0.1:9779/api/enclaves | jq --raw-output 'keys[0]')
SEQUENCER_EL_PORT=$(curl "http://127.0.0.1:9779/api/enclaves/$ENCLAVE_ID/services" | jq '."op-el-1-op-reth-op-node-op-kurtosis".public_ports.rpc.number')
REPLICA_EL_PORT=$(curl "http://127.0.0.1:9779/api/enclaves/$ENCLAVE_ID/services" | jq '."op-el-2-op-reth-op-node-op-kurtosis".public_ports.rpc.number')
echo "SEQUENCER_RPC=http://127.0.0.1:$SEQUENCER_EL_PORT" >> $GITHUB_ENV
echo "REPLICA_RPC=http://127.0.0.1:$REPLICA_EL_PORT" >> $GITHUB_ENV
- name: Wait for pectra
run: |
while true; do sleep 5; current_head=$(cast bn --rpc-url=$REPLICA_RPC); echo "L1 Execution is starting up, head is $current_head"; if [ "$current_head" -ge "32" ]; then echo "L1 Execution is post-pectra!"; break; fi; done
- name: Run E2E tests
run: |
cargo nextest run \
--locked \
--workspace \
-E "package(odyssey-e2e-tests)"
6 changes: 4 additions & 2 deletions .github/workflows/integration.yml
Original file line number Diff line number Diff line change
@@ -37,7 +37,9 @@ jobs:
cargo nextest run \
--locked \
--workspace \
-E 'kind(test)'
-E 'kind(test)' \
--no-tests=warn \
--no-capture
integration-success:
name: integration success
@@ -47,6 +49,6 @@ jobs:
timeout-minutes: 30
steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@release/v1
uses: re-actors/alls-green@v1.2.2
with:
jobs: ${{ toJSON(needs) }}
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -58,7 +58,7 @@ jobs:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: "1.81" # MSRV
toolchain: "1.82" # MSRV
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
3 changes: 2 additions & 1 deletion .github/workflows/unit.yml
Original file line number Diff line number Diff line change
@@ -34,7 +34,8 @@ jobs:
cargo nextest run \
--locked \
--workspace \
-E "kind(lib) | kind(bin) | kind(proc-macro)"
-E "(kind(lib) | kind(bin) | kind(proc-macro)) & !package(odyssey-e2e-tests)" \
--no-tests=warn
doc:
name: doc tests
Loading