Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
2ef49f1
Add Revive/EVM support.
Neopallium Jan 9, 2026
e208c5d
Add ETH RPC gateway.
Neopallium Jan 9, 2026
87524e0
Use the correct extrinsic base weight for WeightToFee.
Neopallium Jan 10, 2026
90369fc
Enable RUST_BACKTRACE=1 in the Rust integration tests.
Neopallium Jan 13, 2026
987c4c8
Downgrade Rust compiler for Revive benchmarks.
Neopallium Jan 14, 2026
6a8e978
Update transaction fees for Revive's WeightToFee impl.
Neopallium Jan 14, 2026
fec3d39
Install solc and resolc to build Revive benchmarks.
Neopallium Jan 14, 2026
6515ecc
Add ExistentialDeposit to fix Revive contract upload/deploy.
Neopallium Jan 15, 2026
25c6d66
Add example to call System.RemarkWithEvent in an Eth transaction.
Neopallium Jan 20, 2026
805b8f5
Change back to our ExistentialDeposit of zero.
Neopallium Feb 10, 2026
038f20e
Update Substrate to stable2603-rc1
Neopallium Mar 12, 2026
b83ca3a
Fix pallet-session tests and benchmarks.
Neopallium Mar 13, 2026
6b3a124
Remove unused transaction storage proof inherent.
Neopallium Mar 13, 2026
dc36673
benchmark cleanup.
Neopallium Mar 13, 2026
26fad91
Use newer Rust compiler.
Neopallium Mar 13, 2026
3f4a5be
Fix unused imports warnings.
Neopallium Mar 13, 2026
f860095
Update eth-rpc gateway.
Neopallium Mar 13, 2026
431e8c3
Use the rustfmt config from Polkadot-sdk for the ETH rpc gateway.
Neopallium Mar 13, 2026
bf2bf34
Pick evm chain ids for our runtimes.
Neopallium Mar 17, 2026
f112fce
Add EvmChainId to unit tests.
Neopallium Mar 17, 2026
9abf220
Add eth-rpc Dockerfile (#1904)
tgntr Mar 30, 2026
1283d8c
Use stable2603 release.
Neopallium Apr 1, 2026
2a4d730
cargo update
Neopallium Apr 1, 2026
85e4971
Some cleanup in eth-rpc.
Neopallium Apr 2, 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
151 changes: 129 additions & 22 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
version: 2.1
commands:
get-solc:
steps:
- run:
name: Get solc
command: |
SOLC_VERSION="0.8.33"
ASSET_URL="https://github.com/argotorg/solidity/releases/download/v${SOLC_VERSION}/solc-static-linux"
echo "Downloading solc version ${SOLC_VERSION} from ${ASSET_URL}"
curl -sSL --output /usr/local/bin/solc ${ASSET_URL}
chmod +x /usr/local/bin/solc
get-resolc:
steps:
- run:
name: Get resolc
command: |
RESOLC_VERSION="0.6.0"
ASSET_URL="https://github.com/paritytech/revive/releases/download/v${RESOLC_VERSION}/resolc-x86_64-unknown-linux-musl"
echo "Downloading resolc version ${RESOLC_VERSION} from ${ASSET_URL}"
curl -sSL --output /usr/local/bin/resolc ${ASSET_URL}
chmod +x /usr/local/bin/resolc
setup-sccache:
steps:
- run:
Expand Down Expand Up @@ -39,7 +59,7 @@ commands:
jobs:
lint:
docker:
- image: polymeshassociation/rust:debian-nightly-2025-09-01
- image: polymeshassociation/rust:debian-nightly-2025-12-01
resource_class: small
environment:
VERBOSE: "1"
Expand All @@ -53,7 +73,7 @@ jobs:
command: ./scripts/check_spec_and_cargo_version.sh
check-storage-version:
docker:
- image: polymeshassociation/rust:debian-nightly-2025-09-01
- image: polymeshassociation/rust:debian-nightly-2025-12-01
resource_class: small
environment:
VERBOSE: "1"
Expand All @@ -64,7 +84,7 @@ jobs:
command: ./scripts/check_storage_versions.sh
build:
docker:
- image: polymeshassociation/rust:debian-nightly-2025-09-01
- image: polymeshassociation/rust:debian-nightly-2025-12-01
resource_class: xlarge
environment:
- VERBOSE: "1"
Expand All @@ -78,12 +98,19 @@ jobs:
name: Build release
command: cargo build --locked --release
no_output_timeout: 30m
- run:
name: Build eth-rpc
command: cargo build --locked --release -p pallet-revive-eth-rpc --bin eth-rpc
no_output_timeout: 30m
- run:
name: Create assets directory for releases
command: mkdir ./assets
- run:
name: Copy binary to assets
command: cp ./target/release/polymesh ./assets/polymesh
- run:
name: Copy eth-rpc binary to assets
command: cp ./target/release/eth-rpc ./assets/eth-rpc
## This has been commented out due to deterministic wasm build step added
# - run:
# name: Copy wasm to assets
Expand All @@ -95,7 +122,7 @@ jobs:
- save-sccache-cache
build-ci:
docker:
- image: polymeshassociation/rust:debian-nightly-2025-09-01
- image: polymeshassociation/rust:debian-nightly-2025-12-01
resource_class: xlarge
environment:
- VERBOSE: "1"
Expand Down Expand Up @@ -124,7 +151,7 @@ jobs:
- .
build-arm64:
docker:
- image: polymeshassociation/rust-arm64:debian-nightly-2025-09-01
- image: polymeshassociation/rust-arm64:debian-nightly-2025-12-01
resource_class: arm.xlarge
environment:
- VERBOSE: "1"
Expand All @@ -138,20 +165,27 @@ jobs:
name: Build release
command: cargo build --locked --release
no_output_timeout: 30m
- run:
name: Build eth-rpc
command: cargo build --locked --release -p pallet-revive-eth-rpc --bin eth-rpc
no_output_timeout: 30m
- run:
name: Create assets directory for releases
command: mkdir ./assets
- run:
name: Copy arm64 binary to assets
command: cp ./target/release/polymesh ./assets/polymesh-arm64
- run:
name: Copy arm64 eth-rpc binary to assets
command: cp ./target/release/eth-rpc ./assets/eth-rpc-arm64
- persist_to_workspace:
root: ./assets
paths:
- .
- save-sccache-cache
benchmark-build:
docker:
- image: polymeshassociation/rust:debian-nightly-2025-09-01
- image: polymeshassociation/rust:debian-nightly-2025-12-01
resource_class: xlarge
environment:
- VERBOSE: "1"
Expand All @@ -161,6 +195,8 @@ jobs:
- checkout
- setup-sccache
- restore-sccache-cache
- get-solc
- get-resolc
- run:
name: Build binary with runtime-benchmarks
command: cargo build --locked --release --features=runtime-benchmarks,running-ci
Expand Down Expand Up @@ -277,7 +313,7 @@ jobs:

metadata-tools-build:
docker:
- image: polymeshassociation/rust:debian-nightly-2025-09-01
- image: polymeshassociation/rust:debian-nightly-2025-12-01
resource_class: small
steps:
- checkout
Expand Down Expand Up @@ -390,7 +426,7 @@ jobs:
no_output_timeout: 30m
migration-tests:
docker:
- image: polymeshassociation/rust:debian-nightly-2025-09-01
- image: polymeshassociation/rust:debian-nightly-2025-12-01
resource_class: large
environment:
- VERBOSE: "1"
Expand All @@ -407,7 +443,7 @@ jobs:
- save-sccache-cache
test:
docker:
- image: polymeshassociation/rust:debian-nightly-2025-09-01
- image: polymeshassociation/rust:debian-nightly-2025-12-01
resource_class: large
environment:
- VERBOSE: "1"
Expand Down Expand Up @@ -435,7 +471,7 @@ jobs:
- save-sccache-cache
coverage:
docker:
- image: polymeshassociation/rust:debian-nightly-2025-09-01
- image: polymeshassociation/rust:debian-nightly-2025-12-01
resource_class: xlarge
environment:
- VERBOSE: "1"
Expand All @@ -450,11 +486,12 @@ jobs:
- save-sccache-cache
rust-integration-test:
docker:
- image: polymeshassociation/rust:debian-nightly-2025-09-01
- image: polymeshassociation/rust:debian-nightly-2025-12-01
resource_class: xlarge
environment:
- VERBOSE: "1"
- RUSTFLAGS: -D warnings
- RUST_BACKTRACE: "1"
steps:
- checkout
- attach_workspace:
Expand Down Expand Up @@ -522,7 +559,7 @@ jobs:
no_output_timeout: 10m
clippy:
docker:
- image: polymeshassociation/rust:debian-nightly-2025-09-01
- image: polymeshassociation/rust:debian-nightly-2025-12-01
resource_class: xlarge
environment:
- VERBOSE: "1"
Expand Down Expand Up @@ -650,6 +687,55 @@ jobs:
echo $DOCKERHUB_PASS | docker login -u $DOCKERHUB_USERNAME --password-stdin
docker manifest push $IMAGE_NAME:latest-$CIRCLE_BRANCH-distroless
docker manifest push $IMAGE_NAME:$VERSION-$CIRCLE_BRANCH-distroless
build-docker-eth-rpc-amd64-debian:
environment:
IMAGE_NAME: polymeshassociation/polymesh-eth-rpc-amd64
docker:
- image: cimg/deploy:2023.08
resource_class: small
steps:
- checkout
- setup_remote_docker
- attach_workspace:
at: .
- run: |
export VERSION=`./scripts/version.sh "$CIRCLE_BRANCH" "$CIRCLE_SHA1"`
docker build -f ./.docker/eth-rpc/Dockerfile --tag $IMAGE_NAME:latest-$CIRCLE_BRANCH-debian --tag $IMAGE_NAME:$VERSION-$CIRCLE_BRANCH-debian .
echo $DOCKERHUB_PASS | docker login -u $DOCKERHUB_USERNAME --password-stdin
docker push --all-tags $IMAGE_NAME
build-docker-eth-rpc-arm64-debian:
environment:
IMAGE_NAME: polymeshassociation/polymesh-eth-rpc-arm64
machine:
image: ubuntu-2004:current
resource_class: arm.medium
steps:
- checkout
- attach_workspace:
at: .
- run: |
export VERSION=`./scripts/version.sh "$CIRCLE_BRANCH" "$CIRCLE_SHA1"`
docker build -f ./.docker/eth-rpc/Dockerfile --build-arg ETH_RPC_BIN=eth-rpc-arm64 --tag $IMAGE_NAME:latest-$CIRCLE_BRANCH-debian --tag $IMAGE_NAME:$VERSION-$CIRCLE_BRANCH-debian .
echo $DOCKERHUB_PASS | docker login -u $DOCKERHUB_USERNAME --password-stdin
docker push --all-tags $IMAGE_NAME
build-docker-eth-rpc-debian:
environment:
IMAGE_NAME: polymeshassociation/polymesh-eth-rpc
IMAGE_AMD_NAME: polymeshassociation/polymesh-eth-rpc-amd64
IMAGE_ARM_NAME: polymeshassociation/polymesh-eth-rpc-arm64
docker:
- image: cimg/deploy:2023.08
resource_class: small
steps:
- checkout
- setup_remote_docker
- run: |
export VERSION=`./scripts/version.sh "$CIRCLE_BRANCH" "$CIRCLE_SHA1"`
docker manifest create $IMAGE_NAME:latest-$CIRCLE_BRANCH-debian $IMAGE_AMD_NAME:latest-$CIRCLE_BRANCH-debian $IMAGE_ARM_NAME:latest-$CIRCLE_BRANCH-debian
docker manifest create $IMAGE_NAME:$VERSION-$CIRCLE_BRANCH-debian $IMAGE_AMD_NAME:$VERSION-$CIRCLE_BRANCH-debian $IMAGE_ARM_NAME:$VERSION-$CIRCLE_BRANCH-debian
echo $DOCKERHUB_PASS | docker login -u $DOCKERHUB_USERNAME --password-stdin
docker manifest push $IMAGE_NAME:latest-$CIRCLE_BRANCH-debian
docker manifest push $IMAGE_NAME:$VERSION-$CIRCLE_BRANCH-debian
build-docker-rust-debian:
environment:
RUST_BASE: 1.75.0
Expand Down Expand Up @@ -808,7 +894,6 @@ workflows:
- testnet
- staging
- develop
- develop_v8
- build-docker-amd64-distroless:
requires:
- build
Expand All @@ -819,15 +904,13 @@ workflows:
- testnet
- staging
- develop
- develop_v8
- build-docker-ci-runtime:
requires:
- build-ci
filters:
branches:
only:
- develop
- develop_v8
- build-docker-arm64-debian:
requires:
- build-arm64
Expand All @@ -838,7 +921,6 @@ workflows:
- testnet
- staging
- develop
- develop_v8
- build-docker-arm64-distroless:
requires:
- build-arm64
Expand All @@ -849,7 +931,6 @@ workflows:
- testnet
- staging
- develop
- develop_v8
- build-docker-debian:
requires:
- build-docker-amd64-debian
Expand All @@ -861,7 +942,6 @@ workflows:
- testnet
- staging
- develop
- develop_v8
- build-docker-distroless:
requires:
- build-docker-amd64-distroless
Expand All @@ -873,7 +953,37 @@ workflows:
- testnet
- staging
- develop
- develop_v8
- build-docker-eth-rpc-amd64-debian:
requires:
- build
filters:
branches:
only:
- mainnet
- testnet
- staging
- develop
- build-docker-eth-rpc-arm64-debian:
requires:
- build-arm64
filters:
branches:
only:
- mainnet
- testnet
- staging
- develop
- build-docker-eth-rpc-debian:
requires:
- build-docker-eth-rpc-amd64-debian
- build-docker-eth-rpc-arm64-debian
filters:
branches:
only:
- mainnet
- testnet
- staging
- develop
- publish-github-release:
requires:
- build
Expand All @@ -894,7 +1004,6 @@ workflows:
- mainnet
- testnet
- staging
- develop_v8
chain: testnet
package: polymesh-runtime-testnet
runtime_dir: pallets/runtime/testnet
Expand All @@ -907,7 +1016,6 @@ workflows:
- mainnet
- testnet
- staging
- develop_v8
chain: mainnet
package: polymesh-runtime-mainnet
runtime_dir: pallets/runtime/mainnet
Expand All @@ -918,7 +1026,6 @@ workflows:
branches:
only:
- develop
- develop_v8
chain: develop
package: polymesh-runtime-develop
runtime_dir: pallets/runtime/develop
Expand Down
4 changes: 4 additions & 0 deletions .docker/eth-rpc/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
**target*
Dockerfile
.dockerignore
.env*
38 changes: 38 additions & 0 deletions .docker/eth-rpc/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
FROM debian:trixie-slim
ARG ETH_RPC_BIN=eth-rpc

RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
apt-get upgrade -y && \
apt-get install -y --no-install-recommends \
ca-certificates \
curl \
libsqlite3-0 && \
apt-get autoremove -y && \
apt-get clean && \
find /var/lib/apt/lists/ -type f -not -name lock -delete

COPY ./${ETH_RPC_BIN} /usr/local/bin/eth-rpc

USER root
RUN useradd -m -u 4001 -U -s /bin/sh -d /home/polymesh polymesh && \
/usr/local/bin/eth-rpc --help

USER polymesh

# 8545 is the default port for the JSON-RPC server
# 9616 is the default port for the Prometheus metrics
EXPOSE 8545 9616

ENTRYPOINT ["/usr/local/bin/eth-rpc"]

# We call the help by default
CMD ["--help"]

HEALTHCHECK \
--interval=10s \
--start-period=30s \
--timeout=5s \
--retries=6 \
CMD curl -sf -X POST -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \
http://localhost:8545/
Loading