diff --git a/Cargo.lock b/Cargo.lock index f400ab177d36e..671f499eaaa5b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13263,6 +13263,7 @@ dependencies = [ "pallet-revive-fixtures", "parity-scale-codec", "pretty_assertions", + "revive-dev-runtime", "rlp 0.6.1", "sc-cli", "sc-rpc", @@ -13272,6 +13273,7 @@ dependencies = [ "sp-arithmetic", "sp-core 28.0.0", "sp-crypto-hashing 0.1.0", + "sp-io", "sp-rpc", "sp-runtime", "sp-weights", @@ -16500,7 +16502,6 @@ dependencies = [ "pallet-referenda", "pallet-remark", "pallet-revive", - "pallet-revive-eth-rpc", "pallet-revive-proc-macro", "pallet-revive-uapi", "pallet-root-offences", @@ -18663,7 +18664,7 @@ dependencies = [ [[package]] name = "revive-dev-runtime" -version = "0.0.0" +version = "0.1.0" dependencies = [ "array-bytes 6.2.2", "parity-scale-codec", diff --git a/prdoc/pr_9865.prdoc b/prdoc/pr_9865.prdoc new file mode 100644 index 0000000000000..852411d2eb914 --- /dev/null +++ b/prdoc/pr_9865.prdoc @@ -0,0 +1,9 @@ +title: '[pallet-revive] rm checked-in metadata' +doc: +- audience: Runtime Dev + description: |- + Removed eth-rpc generated metadata. + The metadata file will now be generated from the build.rs using the AH-westend runtime +crates: +- name: pallet-revive-eth-rpc + bump: patch diff --git a/revive_chain.metadata b/revive_chain.metadata deleted file mode 100644 index f065aed2575be..0000000000000 Binary files a/revive_chain.metadata and /dev/null differ diff --git a/substrate/frame/revive/dev-node/runtime/Cargo.toml b/substrate/frame/revive/dev-node/runtime/Cargo.toml index 3b5f144689e86..9a743170c8ac0 100644 --- a/substrate/frame/revive/dev-node/runtime/Cargo.toml +++ b/substrate/frame/revive/dev-node/runtime/Cargo.toml @@ -1,12 +1,12 @@ [package] name = "revive-dev-runtime" description = "A solochain dev runtime for revive." -version = "0.0.0" +version = "0.1.0" +license = "Apache-2.0" authors.workspace = true homepage.workspace = true repository.workspace = true edition.workspace = true -publish = false [dependencies] array-bytes = { workspace = true } diff --git a/substrate/frame/revive/rpc/Cargo.toml b/substrate/frame/revive/rpc/Cargo.toml index 0efdbb7d5363c..ca09cf4c96a4e 100644 --- a/substrate/frame/revive/rpc/Cargo.toml +++ b/substrate/frame/revive/rpc/Cargo.toml @@ -12,6 +12,9 @@ default-run = "eth-rpc" [lints] workspace = true +[package.metadata.polkadot-sdk] +exclude-from-umbrella = true + [[bin]] name = "eth-rpc" path = "src/main.rs" @@ -53,3 +56,6 @@ substrate-cli-test-utils = { workspace = true } [build-dependencies] git2 = { workspace = true } +revive-dev-runtime = { workspace = true, default-features = true } +sp-io = { workspace = true, default-features = true } +sp-runtime = { workspace = true, default-features = true } diff --git a/substrate/frame/revive/rpc/build.rs b/substrate/frame/revive/rpc/build.rs index e3ae263fdbb92..5315bd4a0474f 100644 --- a/substrate/frame/revive/rpc/build.rs +++ b/substrate/frame/revive/rpc/build.rs @@ -14,10 +14,14 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -use std::process::Command; +use std::{fs, process::Command}; -/// Get the current branch and commit hash. fn main() { + generate_git_revision(); + generate_metadata_file(); +} + +fn generate_git_revision() { let output = Command::new("rustc") .arg("--version") .output() @@ -47,3 +51,12 @@ fn main() { println!("cargo:rustc-env=TARGET={target}"); println!("cargo:rustc-env=GIT_REVISION={branch}-{id}"); } + +fn generate_metadata_file() { + let mut ext = sp_io::TestExternalities::new(Default::default()); + ext.execute_with(|| { + let metadata = revive_dev_runtime::Runtime::metadata_at_version(16).unwrap(); + let bytes: &[u8] = &metadata; + fs::write("revive_chain.scale", bytes).unwrap(); + }); +} diff --git a/substrate/frame/revive/rpc/dockerfiles/eth-rpc/Dockerfile b/substrate/frame/revive/rpc/dockerfiles/eth-rpc/Dockerfile index fb867062a8183..369ed20c0768b 100644 --- a/substrate/frame/revive/rpc/dockerfiles/eth-rpc/Dockerfile +++ b/substrate/frame/revive/rpc/dockerfiles/eth-rpc/Dockerfile @@ -1,23 +1,17 @@ -FROM rust AS builder - -RUN apt-get update && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y \ - protobuf-compiler \ - clang libclang-dev +FROM docker.io/paritytech/ci-unified:latest AS builder WORKDIR /polkadot COPY . /polkadot -RUN rustup component add rust-src -RUN cargo build --locked --profile production -p pallet-revive-eth-rpc --bin eth-rpc + +RUN cargo fetch +RUN cargo build --workspace --locked --profile production -p pallet-revive-eth-rpc --bin eth-rpc FROM docker.io/parity/base-bin:latest COPY --from=builder /polkadot/target/production/eth-rpc /usr/local/bin USER root RUN useradd -m -u 1001 -U -s /bin/sh -d /polkadot polkadot && \ -# unclutter and minimize the attack surface rm -rf /usr/bin /usr/sbin && \ -# check if executable works in this container /usr/local/bin/eth-rpc --help USER polkadot diff --git a/substrate/frame/revive/rpc/revive_chain.metadata b/substrate/frame/revive/rpc/revive_chain.metadata deleted file mode 100644 index a67946ea2ce8d..0000000000000 Binary files a/substrate/frame/revive/rpc/revive_chain.metadata and /dev/null differ diff --git a/substrate/frame/revive/rpc/src/subxt_client.rs b/substrate/frame/revive/rpc/src/subxt_client.rs index 08d9343797e31..5edcbcfc37d17 100644 --- a/substrate/frame/revive/rpc/src/subxt_client.rs +++ b/substrate/frame/revive/rpc/src/subxt_client.rs @@ -20,7 +20,7 @@ pub use subxt::config::PolkadotConfig as SrcChainConfig; #[subxt::subxt( - runtime_metadata_path = "revive_chain.metadata", + runtime_metadata_path = "revive_chain.scale", // TODO remove once subxt use the same U256 type substitute_type( path = "primitive_types::U256", diff --git a/umbrella/Cargo.toml b/umbrella/Cargo.toml index 45674c744dc56..c3536ee5dc216 100644 --- a/umbrella/Cargo.toml +++ b/umbrella/Cargo.toml @@ -874,7 +874,6 @@ node = [ "mmr-gadget", "mmr-rpc", "pallet-contracts-mock-network", - "pallet-revive-eth-rpc", "pallet-transaction-payment-rpc", "parachains-runtimes-test-utils", "polkadot-approval-distribution", @@ -2313,11 +2312,6 @@ default-features = false optional = true path = "../substrate/frame/contracts/mock-network" -[dependencies.pallet-revive-eth-rpc] -default-features = false -optional = true -path = "../substrate/frame/revive/rpc" - [dependencies.pallet-transaction-payment-rpc] default-features = false optional = true diff --git a/umbrella/src/lib.rs b/umbrella/src/lib.rs index 5726f80322ef7..4afc9d146dfde 100644 --- a/umbrella/src/lib.rs +++ b/umbrella/src/lib.rs @@ -636,10 +636,6 @@ pub use pallet_remark; #[cfg(feature = "pallet-revive")] pub use pallet_revive; -/// An Ethereum JSON-RPC server for pallet-revive. -#[cfg(feature = "pallet-revive-eth-rpc")] -pub use pallet_revive_eth_rpc; - /// Procedural macros used in pallet_revive. #[cfg(feature = "pallet-revive-proc-macro")] pub use pallet_revive_proc_macro;