Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
38f5659
feat(ethexe): add `Router.protocolVersion` to contracts & client
StackOverflowExcept1on May 30, 2026
371cf1e
Merge remote-tracking branch 'origin/master' into av/ethexe-router-pr…
StackOverflowExcept1on Jun 2, 2026
07f33a1
fix review
StackOverflowExcept1on Jun 2, 2026
34850f0
Merge remote-tracking branch 'origin/master' into av/ethexe-router-pr…
StackOverflowExcept1on Jun 7, 2026
4aa3e3c
use Soldeer package manager
StackOverflowExcept1on Jun 7, 2026
f06338e
fix ci
StackOverflowExcept1on Jun 7, 2026
a389abf
add version to rpc, split router version to major/minor/patch
StackOverflowExcept1on Jun 8, 2026
d833bf5
Merge remote-tracking branch 'origin/master' into av/ethexe-router-pr…
StackOverflowExcept1on Jun 8, 2026
9a7a2a2
add ProtocolVersionChanged, revert some changes
StackOverflowExcept1on Jun 8, 2026
66b92d0
add new impl
StackOverflowExcept1on Jun 8, 2026
7eacce7
Merge remote-tracking branch 'origin/master' into av/ethexe-router-pr…
StackOverflowExcept1on Jun 8, 2026
96545ea
Merge branch 'master' into av/ethexe-router-protocol-version
StackOverflowExcept1on Jun 8, 2026
82f7583
fix rpc and lock file
StackOverflowExcept1on Jun 9, 2026
6356923
Merge remote-tracking branch 'origin/master' into av/ethexe-router-pr…
StackOverflowExcept1on Jun 16, 2026
414d06a
Merge remote-tracking branch 'origin/master' into av/ethexe-router-pr…
StackOverflowExcept1on Jun 18, 2026
595bdd3
Merge remote-tracking branch 'origin/master' into av/ethexe-router-pr…
StackOverflowExcept1on Jun 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 5 additions & 11 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -182,8 +182,6 @@ jobs:
steps:
- name: "ACTIONS: Checkout"
uses: actions/checkout@v6
with:
submodules: recursive

- name: "Install: Setup linker"
uses: ./.github/actions/setup-linker
Expand Down Expand Up @@ -219,8 +217,6 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: recursive

- name: Setup linker
uses: ./.github/actions/setup-linker
Expand Down Expand Up @@ -263,8 +259,6 @@ jobs:
steps:
- name: "ACTIONS: Checkout"
uses: actions/checkout@v6
with:
submodules: recursive

- name: "Install: Setup linker"
uses: ./.github/actions/setup-linker
Expand All @@ -287,7 +281,11 @@ jobs:
- name: "Install: Foundry"
uses: foundry-rs/foundry-toolchain@v1
with:
version: v1.7.0
version: v1.7.1

- name: Install dependencies
run: forge soldeer install
working-directory: ./ethexe/contracts

- name: "Show: Versioning"
run: |
Expand Down Expand Up @@ -340,8 +338,6 @@ jobs:
steps:
- name: "ACTIONS: Checkout"
uses: actions/checkout@v6
with:
submodules: recursive

- name: "Install: Setup linker"
uses: ./.github/actions/setup-linker
Expand Down Expand Up @@ -541,8 +537,6 @@ jobs:
steps:
- name: "ACTIONS: Checkout"
uses: actions/checkout@v6
with:
submodules: recursive

- name: "Install: Setup linker"
uses: ./.github/actions/setup-linker
Expand Down
20 changes: 7 additions & 13 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: recursive
- name: typos-action
uses: crate-ci/typos@master

Expand All @@ -57,8 +55,6 @@ jobs:
steps:
- name: "ACTIONS: Checkout"
uses: actions/checkout@v6
with:
submodules: recursive

- name: "Install: Rust toolchain"
uses: ./.github/actions/install-rust
Expand All @@ -74,12 +70,16 @@ jobs:
- name: "Install: Foundry"
uses: foundry-rs/foundry-toolchain@v1
with:
version: v1.7.0
version: v1.7.1

- name: Install dependencies
run: forge soldeer install
working-directory: ./ethexe/contracts

- name: "Install: Node.js"
uses: actions/setup-node@v6
with:
node-version: 22.x
node-version: 24.x

- name: "Show: Versioning"
run: forge --version
Expand All @@ -88,7 +88,7 @@ jobs:
run: |
npm cache clean --force

# version from ethexe/contracts/lib/openzeppelin-foundry-upgrades/src/internal/Versions.sol
# version from ethereum/dependencies/openzeppelin-foundry-upgrades-0.4.0/src/internal/Versions.sol
npx @openzeppelin/upgrades-core@^1.37.0

forge fmt --check
Expand Down Expand Up @@ -148,8 +148,6 @@ jobs:
steps:
- name: "ACTIONS: Checkout"
uses: actions/checkout@v6
with:
submodules: recursive

- name: "Install: Setup linker"
uses: ./.github/actions/setup-linker
Expand Down Expand Up @@ -177,8 +175,6 @@ jobs:
steps:
- name: "ACTIONS: Checkout"
uses: actions/checkout@v6
with:
submodules: recursive

- name: "Install: Setup linker"
uses: ./.github/actions/setup-linker
Expand Down Expand Up @@ -228,8 +224,6 @@ jobs:
steps:
- name: "ACTIONS: Checkout"
uses: actions/checkout@v6
with:
submodules: recursive

- name: "Install: Setup linker"
uses: ./.github/actions/setup-linker
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ jobs:
uses: actions/checkout@v6
with:
ref: ${{ github.event.inputs.tag_name }}
submodules: recursive

- name: "Environment: Rust toolchain"
uses: ./.github/actions/install-rust
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/test-measurements.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ jobs:
steps:
- name: "ACTIONS: Checkout"
uses: actions/checkout@v6
with:
submodules: recursive

- name: "Install: Set cargo path"
run: echo "/tmp/cargo/bin" >> $GITHUB_PATH
Expand Down
28 changes: 0 additions & 28 deletions .gitmodules

This file was deleted.

36 changes: 17 additions & 19 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,13 @@ ethexe-pre-commit-no-contracts: fmt clippy-gear
# Building ethexe contracts
.PHONY: ethexe-contracts-deps-check
ethexe-contracts-deps-check:
@ echo " > Checking ethexe contract submodules are locked" && \
status="$$(git submodule status --recursive -- ethexe/contracts/lib)" && \
if printf '%s\n' "$$status" | grep -E '^[+-U]' >/dev/null; then \
printf '%s\n' "$$status"; \
echo "ethexe contract submodules must be initialized and checked out at the pinned revisions"; \
exit 1; \
@ echo " > Checking ethexe contracts dependencies" && \
if [ ! -d "./ethexe/contracts/dependencies" ]; then \
echo "Dependencies folder not found. Installing..." && \
(cd ./ethexe/contracts && forge soldeer install); \
else \
echo "Dependencies folder already exists."; \
fi
@ echo " > Checking ethexe contract submodules are clean" && \
(cd ethexe/contracts/lib && git submodule foreach --recursive 'git diff --quiet && git diff --cached --quiet || { echo "$$sm_path has uncommitted changes"; exit 1; }') >/dev/null
@ echo " > Checking ethexe ethereum ABI artifacts are present" && \
for artifact in \
BatchMulticall \
Expand Down Expand Up @@ -59,18 +57,18 @@ ethexe-contracts-lock-artifacts:
@ echo " > Locking DemoCaller artifact" && cp ./ethexe/contracts/out/DemoCaller.sol/DemoCaller.json ./ethexe/ethereum/abi
@ echo " > Locking Gear artifact" && cp ./ethexe/contracts/out/Gear.sol/Gear.json ./ethexe/ethereum/abi
@ echo " > Locking Symbiotic core artifacts" && \
cp ./ethexe/contracts/lib/symbiotic-core/out/DelegatorFactory.sol/DelegatorFactory.json ./ethexe/ethereum/abi && \
cp ./ethexe/contracts/lib/symbiotic-core/out/NetworkMiddlewareService.sol/NetworkMiddlewareService.json ./ethexe/ethereum/abi && \
cp ./ethexe/contracts/lib/symbiotic-core/out/NetworkRegistry.sol/NetworkRegistry.json ./ethexe/ethereum/abi && \
cp ./ethexe/contracts/lib/symbiotic-core/out/OperatorRegistry.sol/OperatorRegistry.json ./ethexe/ethereum/abi && \
cp ./ethexe/contracts/lib/symbiotic-core/out/OptInService.sol/OptInService.json ./ethexe/ethereum/abi && \
cp ./ethexe/contracts/lib/symbiotic-core/out/SlasherFactory.sol/SlasherFactory.json ./ethexe/ethereum/abi && \
cp ./ethexe/contracts/lib/symbiotic-core/out/Vault.sol/Vault.json ./ethexe/ethereum/abi && \
cp ./ethexe/contracts/lib/symbiotic-core/out/VaultFactory.sol/VaultFactory.json ./ethexe/ethereum/abi
cp ./ethexe/contracts/dependencies/symbiotic-core-main/out/DelegatorFactory.sol/DelegatorFactory.json ./ethexe/ethereum/abi && \
cp ./ethexe/contracts/dependencies/symbiotic-core-main/out/NetworkMiddlewareService.sol/NetworkMiddlewareService.json ./ethexe/ethereum/abi && \
cp ./ethexe/contracts/dependencies/symbiotic-core-main/out/NetworkRegistry.sol/NetworkRegistry.json ./ethexe/ethereum/abi && \
cp ./ethexe/contracts/dependencies/symbiotic-core-main/out/OperatorRegistry.sol/OperatorRegistry.json ./ethexe/ethereum/abi && \
cp ./ethexe/contracts/dependencies/symbiotic-core-main/out/OptInService.sol/OptInService.json ./ethexe/ethereum/abi && \
cp ./ethexe/contracts/dependencies/symbiotic-core-main/out/SlasherFactory.sol/SlasherFactory.json ./ethexe/ethereum/abi && \
cp ./ethexe/contracts/dependencies/symbiotic-core-main/out/Vault.sol/Vault.json ./ethexe/ethereum/abi && \
cp ./ethexe/contracts/dependencies/symbiotic-core-main/out/VaultFactory.sol/VaultFactory.json ./ethexe/ethereum/abi
@ echo " > Locking Symbiotic rewards artifacts" && \
cp ./ethexe/contracts/lib/symbiotic-rewards/out/DefaultOperatorRewards.sol/DefaultOperatorRewards.json ./ethexe/ethereum/abi && \
cp ./ethexe/contracts/lib/symbiotic-rewards/out/DefaultStakerRewards.sol/DefaultStakerRewards.json ./ethexe/ethereum/abi && \
cp ./ethexe/contracts/lib/symbiotic-rewards/out/DefaultStakerRewardsFactory.sol/DefaultStakerRewardsFactory.json ./ethexe/ethereum/abi
cp ./ethexe/contracts/dependencies/symbiotic-rewards-main/out/DefaultOperatorRewards.sol/DefaultOperatorRewards.json ./ethexe/ethereum/abi && \
cp ./ethexe/contracts/dependencies/symbiotic-rewards-main/out/DefaultStakerRewards.sol/DefaultStakerRewards.json ./ethexe/ethereum/abi && \
cp ./ethexe/contracts/dependencies/symbiotic-rewards-main/out/DefaultStakerRewardsFactory.sol/DefaultStakerRewardsFactory.json ./ethexe/ethereum/abi

.PHONY: ethexe-contracts-pre-commit
ethexe-contracts-pre-commit: ethexe-contracts-deps-check
Expand Down
2 changes: 1 addition & 1 deletion ethexe/common/src/db.rs
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@ mod tests {
#[test]
fn ensure_types_unchanged() {
const EXPECTED_TYPE_INFO_HASH: &str =
"cbf21dc97ec57cc6f653a7808672dc2c086fdfae28d1435e93f0dfe812de21c3";
"918c461a80e6ecd2fa36e7742d7c342c99a0b6a72a79b29ebb66499ee8a238f5";

let types = [
meta_type::<BlockMeta>(),
Expand Down
11 changes: 10 additions & 1 deletion ethexe/common/src/events/router.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0

use crate::Digest;
use gprimitives::{ActorId, CodeId, H256};
use gprimitives::{ActorId, CodeId, H256, U256};
use parity_scale_codec::{Decode, Encode};
use scale_info::TypeInfo;

Expand All @@ -22,6 +22,12 @@ pub struct MBCommittedEvent(pub H256);
#[derive(Clone, Debug, Encode, Decode, TypeInfo, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct EBCommittedEvent(pub H256);

#[derive(Clone, Debug, Encode, Decode, TypeInfo, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))]
pub struct ProtocolVersionChangedEvent {
pub new_protocol_version: U256,
}

#[derive(Clone, Debug, Encode, Decode, TypeInfo, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct CodeGotValidatedEvent {
pub code_id: CodeId,
Expand Down Expand Up @@ -74,6 +80,7 @@ pub enum Event {
// TODO: on review ask about backward compatibility
StorageSlotChanged(StorageSlotChangedEvent),
ValidatorsCommittedForEra(ValidatorsCommittedForEraEvent),
ProtocolVersionChanged(ProtocolVersionChangedEvent),
}

impl Event {
Expand All @@ -88,6 +95,7 @@ impl Event {
Self::ValidatorsCommittedForEra(event) => {
RequestEvent::ValidatorsCommittedForEra(event)
}
Self::ProtocolVersionChanged(event) => RequestEvent::ProtocolVersionChanged(event),
Self::CodeGotValidated { .. }
| Self::MBCommitted(_)
| Self::EBCommitted(_)
Expand All @@ -104,4 +112,5 @@ pub enum RequestEvent {
ProgramCreated(ProgramCreatedEvent),
StorageSlotChanged(StorageSlotChangedEvent),
ValidatorsCommittedForEra(ValidatorsCommittedForEraEvent),
ProtocolVersionChanged(ProtocolVersionChangedEvent),
}
Loading
Loading