Add Revive/EVM support and move to Substrate stable2603 release.#1902
Open
Neopallium wants to merge 24 commits intodevelopfrom
Open
Add Revive/EVM support and move to Substrate stable2603 release.#1902Neopallium wants to merge 24 commits intodevelopfrom
Neopallium wants to merge 24 commits intodevelopfrom
Conversation
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub. |
2beacde to
8370639
Compare
Merged
Neopallium
pushed a commit
that referenced
this pull request
Mar 30, 2026
NOTE: Targetting #1902 branch until it gets merged ## changelog ### other - Add Dockerfile for building and running the `eth-rpc` binary - Add CI jobs to publish images
Contributor
There was a problem hiding this comment.
Pull request overview
Adds Revive (PVM/EVM) support across Polymesh runtimes and introduces an eth-rpc companion service, while updating the toolchain/CI to Substrate stable2603-era dependencies and APIs.
Changes:
- Integrate
pallet-reviveinto develop/testnet/mainnet runtimes, transaction extensions, and runtime APIs (including ETH transaction support). - Add new
pallet-revive-eth-rpccrate (server, client, storage/receipt indexing, tests, examples, migrations, docker/CI wiring). - Update toolchain/CI/build plumbing (nightly bump, rust-src, CircleCI jobs, Docker ignores/images) and adjust tests/benchmarks for new fee/session APIs.
Reviewed changes
Copilot reviewed 74 out of 86 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| src/service.rs | Updates extrinsic construction and consensus inherent providers; wiring for essential spawn handle. |
| src/command.rs | Replaces run() with run_with_args(Vec<String>) CLI entrypoint. |
| src/chain_spec/develop_runtime.rs | Adds ETH dev accounts to develop chain spec endowed accounts list. |
| src/bin/main.rs | Passes env args into run_with_args. |
| src/benchmarking.rs | Updates benchmark extrinsic creation for new TxExtension shape and revive SetOrigin. |
| rust-toolchain.toml | Bumps nightly toolchain and adds rust-src. |
| integration/rust-toolchain.toml | Bumps integration nightly toolchain. |
| primitives/src/lib.rs | Adjusts derives away from RuntimeDebug usage. |
| pallets/validators/src/types.rs | Switches derives to Debug for validator types. |
| pallets/validators/src/tests.rs | Updates session key ownership proof usage in tests. |
| pallets/validators/src/mock.rs | Updates bonding helper to generate ownership proof for session keys. |
| pallets/validators/src/lib.rs | Removes unused sp_std::vec import. |
| pallets/transaction-payment/src/lib.rs | Updates derive macro import (DebugNoBound). |
| pallets/sto/src/lib.rs | Adjusts derives for FundingMethod enum. |
| pallets/statistics/src/lib.rs | Cleans up unused vec import. |
| pallets/runtime/tests/src/transaction_payment_test.rs | Updates expected fee/balance values after fee logic changes. |
| pallets/runtime/tests/src/storage.rs | Adds Revive pallet + EVM chain id/weights; updates TxExtension/uncheck extrinsic helpers. |
| pallets/runtime/tests/src/signed_extra.rs | Updates TxExtension shape and expected priorities. |
| pallets/runtime/tests/Cargo.toml | Adds pallet-revive dependency/features. |
| pallets/runtime/testnet/src/runtime.rs | Adds Revive pallet + EvmChainId to testnet runtime. |
| pallets/runtime/testnet/Cargo.toml | Adds pallet-revive and benchmark feature wiring. |
| pallets/runtime/mainnet/src/runtime.rs | Adds Revive pallet + EvmChainId to mainnet runtime. |
| pallets/runtime/mainnet/Cargo.toml | Adds pallet-revive and benchmark feature wiring. |
| pallets/runtime/develop/src/runtime.rs | Adds Revive pallet + EvmChainId; updates benchmarks integration and session benchmarking config. |
| pallets/runtime/develop/src/lib.rs | Removes old benchmarks module exports. |
| pallets/runtime/develop/src/benchmarks/pallet_session.rs | Deletes local session benchmarking implementation (migrates to pallet-session-benchmarking). |
| pallets/runtime/develop/src/benchmarks/mod.rs | Removes benchmarks module shim. |
| pallets/runtime/develop/Cargo.toml | Adds pallet-revive + pallet-session-benchmarking optional dependency/features. |
| pallets/runtime/common/src/runtime.rs | Integrates Revive config, ETH extra/unchecked extrinsic type, TxExtension reshaping, fee mapping changes. |
| pallets/runtime/common/src/lib.rs | Adds fee multiplier const, revive deposit constants, max eth extrinsic ratio, block length builder update. |
| pallets/runtime/common/Cargo.toml | Adds pallet-transaction-payment dependency/features. |
| pallets/relayer/src/lib.rs | Removes unused sp_std::vec import. |
| pallets/permissions/src/lib.rs | Cleans up imports (fmt/vec). |
| pallets/contracts/src/lib.rs | Removes unused vec import. |
| pallets/asset/src/checkpoint/mod.rs | Removes unused sp_std::vec import. |
| eth-rpc/src/main.rs | Adds eth-rpc binary entrypoint. |
| eth-rpc/src/lib.rs | Adds eth-rpc server implementation and module structure. |
| eth-rpc/src/cli.rs | Adds eth-rpc CLI + server startup wiring, subscriptions, prometheus, rpc module merging. |
| eth-rpc/src/client.rs | Adds Substrate client wrapper (syncing, blocks, receipts, tracing, submission). |
| eth-rpc/src/client/runtime_api.rs | Adds runtime API wrapper for revive EVM queries/dry-run/trace helpers. |
| eth-rpc/src/client/storage_api.rs | Adds storage API wrapper for contract info/trie id. |
| eth-rpc/src/subxt_client.rs | Adds generated subxt client module (type substitutions, metadata path). |
| eth-rpc/src/receipt_extractor.rs | Adds receipt extraction logic from revive extrinsics/events. |
| eth-rpc/src/block_info_provider.rs | Adds block cache/provider abstraction and Subxt-backed implementation. |
| eth-rpc/src/fee_history_provider.rs | Adds fee history cache and response generation. |
| eth-rpc/src/example.rs | Adds helper transaction builder utilities for examples/tests. |
| eth-rpc/src/apis.rs | Adds API module wiring (eth/debug/health/polkadot). |
| eth-rpc/src/apis/execution_apis.rs | Adds generated Eth JSON-RPC trait definitions. |
| eth-rpc/src/apis/debug_apis.rs | Adds debug tracing/automine endpoints. |
| eth-rpc/src/apis/health_api.rs | Adds health + net_peerCount endpoints. |
| eth-rpc/src/apis/polkadot_api.rs | Adds Polkadot-specific postDispatchWeight RPC. |
| eth-rpc/src/tests.rs | Adds integration-style eth-rpc tests that spawn node + rpc server. |
| eth-rpc/migrations/0001_create_transaction_hashes.sql | Adds transaction hash indexing table migration. |
| eth-rpc/migrations/0002_create_log_table.sql | Adds logs table migration. |
| eth-rpc/migrations/0003_create_eth_substrate_block_mapping.sql | Adds eth<->substrate block hash mapping table migration. |
| eth-rpc/examples/README.md | Documents how to run node, zombienet, rpc server, and examples. |
| eth-rpc/examples/deploy.rs | Adds deploy+call example. |
| eth-rpc/examples/transfer.rs | Adds transfer example. |
| eth-rpc/examples/tx-types.rs | Adds example for multiple tx types. |
| eth-rpc/examples/rpc-playground.rs | Adds basic RPC playground example. |
| eth-rpc/examples/extrinsic.rs | Adds substrate extrinsic submission example via subxt. |
| eth-rpc/examples/remark-extrinsic.rs | Adds substrate remark extrinsic example. |
| eth-rpc/examples/eth-rpc-tester.rs | Adds external tester that can run against docker image. |
| eth-rpc/examples/eth-remark-call.rs | Adds example for calling a Substrate call via EVM runtime pallets address. |
| eth-rpc/examples/westend_local_network.toml | Adds zombienet config example. |
| eth-rpc/build.rs | Adds build-time env metadata and subxt metadata generation. |
| eth-rpc/Cargo.toml | Introduces eth-rpc crate definition and dependencies. |
| eth-rpc/.rustfmt.toml | Adds rustfmt configuration specific to eth-rpc crate. |
| eth-rpc/.sqlx/query-*.json | Adds sqlx prepared query metadata files. |
| .dockerignore | Ignores .env* files in docker context. |
| .docker/eth-rpc/Dockerfile | Adds production docker image for eth-rpc binary artifact. |
| .docker/eth-rpc/Dockerfile.local | Adds local-build docker image to build eth-rpc from workspace. |
| .docker/eth-rpc/.dockerignore | Adds dockerignore for eth-rpc docker build context. |
| .circleci/config.yml | Updates CI images/toolchain; adds solc/resolc download; builds/publishes eth-rpc docker images. |
Files not reviewed (10)
- eth-rpc/.sqlx/query-2348bd412ca114197996e4395fd68c427245f94b80d37ec3aef04cd96fb36298.json: Language not supported
- eth-rpc/.sqlx/query-29af64347f700919dc2ee12463f332be50096d4e37be04ed8b6f46ac5c242043.json: Language not supported
- eth-rpc/.sqlx/query-2fcbf357b3993c0065141859e5ad8c11bd7800e3e6d22e8383ab9ac8bbec25b1.json: Language not supported
- eth-rpc/.sqlx/query-3de332f45edf5ee4592bd0061956305983861ccaea79eec44518e1bca5233920.json: Language not supported
- eth-rpc/.sqlx/query-47b830cef6768ed5b119c74037482baef86a7c3d3469873a205805ef342ba031.json: Language not supported
- eth-rpc/.sqlx/query-5c0ea8efbd2591e3ede3833acfcadf2d552140a20d84edbf90583da4619bcf2a.json: Language not supported
- eth-rpc/.sqlx/query-7e5be81ad6f5d96bc6dbf62098cbd61d257d1ffad222317634327e12be403ab2.json: Language not supported
- eth-rpc/.sqlx/query-b296f5ac320c7537133dca1ede0285ccf101a8e36d68455e05a76df3b366420e.json: Language not supported
- eth-rpc/.sqlx/query-cf515b47790a2ac4b3802c29e36a07ace0c67849e5b20c92532d7a77861ebf80.json: Language not supported
- eth-rpc/.sqlx/query-e712acbeb712c0a61fc2a47f966abae1ae43ffba0920a9d209d01dcfce44c5e0.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
tgntr
reviewed
Apr 1, 2026
tgntr
approved these changes
Apr 1, 2026
Give ETH dev keys some POLYX on dev chain.
NOTE: Targetting #1902 branch until it gets merged ## changelog ### other - Add Dockerfile for building and running the `eth-rpc` binary - Add CI jobs to publish images
9c8121e to
2a4d730
Compare
tgntr
approved these changes
Apr 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
changelog
new features
eth-rpcthe start of an ETH -> Substrate gateway.