From 41e9203357bd79f1f00ce3f3ef968c9bad6788dc Mon Sep 17 00:00:00 2001 From: Hernando Castano Date: Tue, 17 Mar 2020 07:47:21 -0400 Subject: [PATCH] Get Ethereum Relay to Compile (#21) * Update dependencies Upgrades Substrate based dependencies from v2.0.0 -> v2.0.0-alpha.1 and uses the `jsonrpsee`'s new feature flags. The actual code hasn't been updated though, so this won't compile. * Use `RawClient`s from `jsonrpsee` * Update to use jsonrpsee's new API * Hook up Ethereum Bridge Runtime, Relay, and Node Runtime * Bump `parity-crypto` from v0.4 to v0.6 Fixes error when trying to compile tests. This was caused by `parity-crypto` v0.4's use of `parity-secp256k1` over `secp256k1'. Using the Parity fork meant multiple version of the same underlying C library were being pulled in. `parity-crypto` v0.6 moved away from this, only relying on `secp256k1` thus fixing the issue. --- bridges/bin/node/node/Cargo.toml | 1 + bridges/bin/node/node/src/chain_spec.rs | 51 +++++++++++++++++- bridges/bin/node/runtime/Cargo.toml | 12 +++++ bridges/bin/node/runtime/src/lib.rs | 22 ++++++++ bridges/modules/ethereum/Cargo.toml | 2 +- bridges/modules/substrate/Cargo.toml | 1 - bridges/primitives/ethereum-poa/Cargo.toml | 31 ++++++++--- bridges/relays/ethereum/Cargo.toml | 54 +++++++++++++++---- .../relays/ethereum/src/ethereum_client.rs | 17 ++++-- .../relays/ethereum/src/substrate_client.rs | 42 ++++++++------- bridges/relays/substrate/Cargo.toml | 18 +++++-- 11 files changed, 203 insertions(+), 48 deletions(-) diff --git a/bridges/bin/node/node/Cargo.toml b/bridges/bin/node/node/Cargo.toml index 91a13cb7718dd..a0acdab18b9dc 100644 --- a/bridges/bin/node/node/Cargo.toml +++ b/bridges/bin/node/node/Cargo.toml @@ -15,6 +15,7 @@ futures = "0.3.1" log = "0.4.8" structopt = "0.3.8" bridge-node-runtime = { version = "0.1.0", path = "../runtime" } +sp-bridge-eth-poa = { version = "0.1.0", path = "../../../primitives/ethereum-poa" } [dependencies.sc-cli] version = "0.8.0-alpha.2" diff --git a/bridges/bin/node/node/src/chain_spec.rs b/bridges/bin/node/node/src/chain_spec.rs index a988b96c30108..6301e342ee868 100644 --- a/bridges/bin/node/node/src/chain_spec.rs +++ b/bridges/bin/node/node/src/chain_spec.rs @@ -16,8 +16,9 @@ use sp_core::{Pair, Public, sr25519}; use bridge_node_runtime::{ - AccountId, AuraConfig, BalancesConfig, GenesisConfig, GrandpaConfig, - SudoConfig, SystemConfig, WASM_BINARY, Signature + AccountId, AuraConfig, BalancesConfig, BridgeEthPoAConfig, + GenesisConfig, GrandpaConfig, SudoConfig, SystemConfig, + WASM_BINARY, Signature }; use sp_consensus_aura::sr25519::{AuthorityId as AuraId}; use grandpa_primitives::{AuthorityId as GrandpaId}; @@ -112,6 +113,7 @@ fn testnet_genesis(initial_authorities: Vec<(AuraId, GrandpaId)>, pallet_aura: Some(AuraConfig { authorities: initial_authorities.iter().map(|x| (x.0.clone())).collect(), }), + pallet_bridge_eth_poa: load_kovan_config(), pallet_grandpa: Some(GrandpaConfig { authorities: initial_authorities.iter().map(|x| (x.1.clone(), 1)).collect(), }), @@ -127,3 +129,48 @@ pub fn load_spec(id: &str) -> Result, String> { None => None, }) } + +fn load_kovan_config() -> Option { + Some(BridgeEthPoAConfig { + initial_header: sp_bridge_eth_poa::Header { + parent_hash: Default::default(), + timestamp: 0, + number: 0, + author: Default::default(), + transactions_root: "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421".parse().unwrap(), + uncles_hash: "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347".parse().unwrap(), + extra_data: vec![], + state_root: "2480155b48a1cea17d67dbfdfaafe821c1d19cdd478c5358e8ec56dec24502b2".parse().unwrap(), + receipts_root: "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421".parse().unwrap(), + log_bloom: Default::default(), + gas_used: Default::default(), + gas_limit: 6000000.into(), + difficulty: 131072.into(), + seal: vec![ + vec![128].into(), + vec![184, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0].into(), + ], + }, + initial_difficulty: 0.into(), + initial_validators: vec![ + [0x00, 0xD6, 0xCc, 0x1B, 0xA9, 0xcf, 0x89, 0xBD, 0x2e, 0x58, + 0x00, 0x97, 0x41, 0xf4, 0xF7, 0x32, 0x5B, 0xAd, 0xc0, 0xED].into(), + [0x00, 0x42, 0x7f, 0xea, 0xe2, 0x41, 0x9c, 0x15, 0xb8, 0x9d, + 0x1c, 0x21, 0xaf, 0x10, 0xd1, 0xb6, 0x65, 0x0a, 0x4d, 0x3d].into(), + [0x4E, 0xd9, 0xB0, 0x8e, 0x63, 0x54, 0xC7, 0x0f, 0xE6, 0xF8, + 0xCB, 0x04, 0x11, 0xb0, 0xd3, 0x24, 0x6b, 0x42, 0x4d, 0x6c].into(), + [0x00, 0x20, 0xee, 0x4B, 0xe0, 0xe2, 0x02, 0x7d, 0x76, 0x60, + 0x3c, 0xB7, 0x51, 0xeE, 0x06, 0x95, 0x19, 0xbA, 0x81, 0xA1].into(), + [0x00, 0x10, 0xf9, 0x4b, 0x29, 0x6a, 0x85, 0x2a, 0xaa, 0xc5, + 0x2e, 0xa6, 0xc5, 0xac, 0x72, 0xe0, 0x3a, 0xfd, 0x03, 0x2d].into(), + [0x00, 0x77, 0x33, 0xa1, 0xFE, 0x69, 0xCF, 0x3f, 0x2C, 0xF9, + 0x89, 0xF8, 0x1C, 0x7b, 0x4c, 0xAc, 0x16, 0x93, 0x38, 0x7A].into(), + [0x00, 0xE6, 0xd2, 0xb9, 0x31, 0xF5, 0x5a, 0x3f, 0x17, 0x01, + 0xc7, 0x38, 0x9d, 0x59, 0x2a, 0x77, 0x78, 0x89, 0x78, 0x79].into(), + [0x00, 0xe4, 0xa1, 0x06, 0x50, 0xe5, 0xa6, 0xD6, 0x00, 0x1C, + 0x38, 0xff, 0x8E, 0x64, 0xF9, 0x70, 0x16, 0xa1, 0x64, 0x5c].into(), + [0x00, 0xa0, 0xa2, 0x4b, 0x9f, 0x0e, 0x5e, 0xc7, 0xaa, 0x4c, + 0x73, 0x89, 0xb8, 0x30, 0x2f, 0xd0, 0x12, 0x31, 0x94, 0xde].into(), + ], + }) +} diff --git a/bridges/bin/node/runtime/Cargo.toml b/bridges/bin/node/runtime/Cargo.toml index 4b59c813b5653..7e0b9392c240c 100644 --- a/bridges/bin/node/runtime/Cargo.toml +++ b/bridges/bin/node/runtime/Cargo.toml @@ -30,6 +30,11 @@ default-features = false rev = "2afecf81ee19b8a6edb364b419190ea47c4a4a31" git = "https://github.com/paritytech/substrate/" +[dependencies.pallet-bridge-eth-poa] +version = "0.1.0" +default-features = false +path = "../../../modules/ethereum" + [dependencies.frame-support] version = "2.0.0-alpha.2" default-features = false @@ -91,6 +96,11 @@ default-features = false rev = "2afecf81ee19b8a6edb364b419190ea47c4a4a31" git = "https://github.com/paritytech/substrate/" +[dependencies.sp-bridge-eth-poa] +version = "0.1.0" +default-features = false +path = "../../../primitives/ethereum-poa" + [dependencies.sp-consensus-aura] version = "0.8.0-alpha.2" default-features = false @@ -162,6 +172,7 @@ default = ["std"] std = [ "pallet-aura/std", "pallet-balances/std", + "pallet-bridge-eth-poa/std", "codec/std", "frame-executive/std", "frame-support/std", @@ -171,6 +182,7 @@ std = [ "serde", "sp-api/std", "sp-block-builder/std", + "sp-bridge-eth-poa/std", "sp-consensus-aura/std", "sp-core/std", "sp-inherents/std", diff --git a/bridges/bin/node/runtime/src/lib.rs b/bridges/bin/node/runtime/src/lib.rs index 8b5c9876667c2..d5b1c0dd143f0 100644 --- a/bridges/bin/node/runtime/src/lib.rs +++ b/bridges/bin/node/runtime/src/lib.rs @@ -52,6 +52,7 @@ pub use frame_support::{ traits::Randomness, weights::Weight, }; +pub use pallet_bridge_eth_poa::Call as BridgeEthPoACall; /// An index to a block. pub type BlockNumber = u32; @@ -186,6 +187,10 @@ impl pallet_aura::Trait for Runtime { type AuthorityId = AuraId; } +impl pallet_bridge_eth_poa::Trait for Runtime { + type OnHeadersSubmitted = (); +} + impl pallet_grandpa::Trait for Runtime { type Event = Event; } @@ -248,6 +253,7 @@ construct_runtime!( Balances: pallet_balances::{Module, Call, Storage, Config, Event}, TransactionPayment: pallet_transaction_payment::{Module, Storage}, Sudo: pallet_sudo::{Module, Call, Config, Storage, Event}, + BridgeEthPoA: pallet_bridge_eth_poa::{Module, Call, Config, Storage}, } ); @@ -270,6 +276,8 @@ pub type SignedExtra = ( frame_system::CheckWeight, pallet_transaction_payment::ChargeTransactionPayment ); +/// The payload being signed in transactions. +pub type SignedPayload = generic::SignedPayload; /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; /// Extrinsic type that has already been checked. @@ -327,6 +335,20 @@ impl_runtime_apis! { } } + impl sp_bridge_eth_poa::EthereumHeadersApi for Runtime { + fn best_block() -> (u64, sp_bridge_eth_poa::H256) { + BridgeEthPoA::best_block() + } + + fn is_import_requires_receipts(header: sp_bridge_eth_poa::Header) -> bool { + BridgeEthPoA::is_import_requires_receipts(header) + } + + fn is_known_block(hash: sp_bridge_eth_poa::H256) -> bool { + BridgeEthPoA::is_known_block(hash) + } + } + impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { fn validate_transaction(tx: ::Extrinsic) -> TransactionValidity { Executive::validate_transaction(tx) diff --git a/bridges/modules/ethereum/Cargo.toml b/bridges/modules/ethereum/Cargo.toml index 2a750ffbf5f6a..3b752212ec9bf 100644 --- a/bridges/modules/ethereum/Cargo.toml +++ b/bridges/modules/ethereum/Cargo.toml @@ -45,7 +45,7 @@ git = "https://github.com/paritytech/substrate/" [dev-dependencies] # TODO: Stop renaming this on import primitives = { package = "sp-bridge-eth-poa", path = "../../primitives/ethereum-poa", features = ["std", "test-helpers"] } -parity-crypto = { version = "0.4", features = ["publickey"] } +parity-crypto = { version = "0.6", features = ["publickey"] } [features] default = ["std"] diff --git a/bridges/modules/substrate/Cargo.toml b/bridges/modules/substrate/Cargo.toml index 069fed6783209..2ac2269af44d8 100644 --- a/bridges/modules/substrate/Cargo.toml +++ b/bridges/modules/substrate/Cargo.toml @@ -24,7 +24,6 @@ default-features = false rev = "2afecf81ee19b8a6edb364b419190ea47c4a4a31" git = "https://github.com/paritytech/substrate/" - [dependencies.pallet-session] version = "2.0.0-alpha.2" default-features = false diff --git a/bridges/primitives/ethereum-poa/Cargo.toml b/bridges/primitives/ethereum-poa/Cargo.toml index 02d144ccb38ef..015cfacb4e0b7 100644 --- a/bridges/primitives/ethereum-poa/Cargo.toml +++ b/bridges/primitives/ethereum-poa/Cargo.toml @@ -16,16 +16,35 @@ impl-rlp = { version = "0.2", default-features = false } impl-serde = { version = "0.2.3", optional = true } codec = { package = "parity-scale-codec", version = "1.0.0", default-features = false } rlp = { version = "0.4", default-features = false } - -sp-std = { version = "2.0.0-alpha.2", git = "https://github.com/paritytech/substrate.git", default-features = false, rev = "2afecf81ee19b8a6edb364b419190ea47c4a4a31" } -sp-runtime = { version = "2.0.0-alpha.2", git = "https://github.com/paritytech/substrate.git", default-features = false, rev = "2afecf81ee19b8a6edb364b419190ea47c4a4a31" } -sp-api = { version = "2.0.0-alpha.2", git = "https://github.com/paritytech/substrate.git", default-features = false, rev = "2afecf81ee19b8a6edb364b419190ea47c4a4a31" } -sp-io = { version = "2.0.0-alpha.2", git = "https://github.com/paritytech/substrate.git", default-features = false, rev = "2afecf81ee19b8a6edb364b419190ea47c4a4a31" } - hash-db = { version = "0.15.2", default-features = false } triehash = { version = "0.8.2", default-features = false } plain_hasher = { version = "0.2.2", default-features = false } +# Substrate Based Dependencies +[dependencies.sp-api] +version = "2.0.0-alpha.2" +default-features = false +rev = "2afecf81ee19b8a6edb364b419190ea47c4a4a31" +git = "https://github.com/paritytech/substrate.git" + +[dependencies.sp-std] +version = "2.0.0-alpha.2" +default-features = false +rev = "2afecf81ee19b8a6edb364b419190ea47c4a4a31" +git = "https://github.com/paritytech/substrate.git" + +[dependencies.sp-runtime] +version = "2.0.0-alpha.2" +default-features = false +rev = "2afecf81ee19b8a6edb364b419190ea47c4a4a31" +git = "https://github.com/paritytech/substrate.git" + +[dependencies.sp-io] +version = "2.0.0-alpha.2" +default-features = false +rev = "2afecf81ee19b8a6edb364b419190ea47c4a4a31" +git = "https://github.com/paritytech/substrate.git" + [features] default = ["std"] test-helpers = [] diff --git a/bridges/relays/ethereum/Cargo.toml b/bridges/relays/ethereum/Cargo.toml index f8822fe0a31ed..a58f89e5c2bd6 100644 --- a/bridges/relays/ethereum/Cargo.toml +++ b/bridges/relays/ethereum/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "async-bridge" +name = "ethereum-poa-relay" version = "0.1.0" authors = ["Parity Technologies "] edition = "2018" @@ -11,22 +11,54 @@ async-stream = "0.2.0" clap = { version = "2.33.0", features = ["yaml"] } codec = { package = "parity-scale-codec", version = "1.0.0" } env_logger = "0.7.0" -frame-system = { git = "https://github.com/svyatonik/substrate.git", branch = "bridge_runtime" } futures = "0.3.1" -jsonrpsee-core = { git = "https://github.com/paritytech/jsonrpsee.git" } -jsonrpsee-http = { git = "https://github.com/paritytech/jsonrpsee.git" } +jsonrpsee = { git = "https://github.com/paritytech/jsonrpsee.git", default-features = false, features = ["http"] } linked-hash-map = "0.5.2" log = "0.4.8" -node-primitives = { git = "https://github.com/svyatonik/substrate.git", branch = "bridge_runtime" } -node-runtime = { git = "https://github.com/svyatonik/substrate.git", branch = "bridge_runtime" } -pallet-transaction-payment = { git = "https://github.com/svyatonik/substrate.git", branch = "bridge_runtime" } parking_lot = "0.9.0" rustc-hex = "2.0.1" serde = { version = "1.0.40", features = ["derive"] } serde_json = "1.0.40" -sp-bridge-eth-poa = { git = "https://github.com/svyatonik/substrate.git", branch = "bridge_runtime" } -sp-core = { git = "https://github.com/svyatonik/substrate.git", branch = "bridge_runtime" } -sp-keyring = { git = "https://github.com/svyatonik/substrate.git", branch = "bridge_runtime" } -sp-runtime = { git = "https://github.com/svyatonik/substrate.git", branch = "bridge_runtime" } +sp-bridge-eth-poa = { path = "../../primitives/ethereum-poa" } time = "0.1" web3 = { git = "https://github.com/svyatonik/rust-web3.git", branch = "fix_receipt" } + +# Substrate Based Dependencies +[dependencies.frame-system] +version = "2.0.0-alpha.2" +rev = "2afecf81ee19b8a6edb364b419190ea47c4a4a31" +git = "https://github.com/paritytech/substrate/" + +[dependencies.pallet-transaction-payment] +version = "2.0.0-alpha.2" +rev = "2afecf81ee19b8a6edb364b419190ea47c4a4a31" +git = "https://github.com/paritytech/substrate.git" + +# I think this is used for sr-io and stuff +[dependencies.node-primitives] +version = "2.0.0-alpha.2" +rev = "2afecf81ee19b8a6edb364b419190ea47c4a4a31" +git = "https://github.com/paritytech/substrate.git" + +# Branch used for keccack256 hasher code +# Could probably move the keccack hasher stuff to our own primitives +[dependencies.sp-core] +version = "2.0.0-alpha.2" +rev = "2afecf81ee19b8a6edb364b419190ea47c4a4a31" +git = "https://github.com/paritytech/substrate.git" + +[dependencies.sp-keyring] +version = "2.0.0-alpha.2" +rev = "2afecf81ee19b8a6edb364b419190ea47c4a4a31" +git = "https://github.com/paritytech/substrate.git" + +[dependencies.sp-runtime] +version = "2.0.0-alpha.2" +rev = "2afecf81ee19b8a6edb364b419190ea47c4a4a31" +git = "https://github.com/paritytech/substrate.git" + +# This should get moved to our `bin` folder +[dependencies.bridge-node-runtime] +version = "0.1.0" +path = "../../bin/node/runtime" +# node-runtime = { git = "https://github.com/svyatonik/substrate.git", branch = "bridge_runtime" } diff --git a/bridges/relays/ethereum/src/ethereum_client.rs b/bridges/relays/ethereum/src/ethereum_client.rs index 08eaf2475340f..2147922dc79b1 100644 --- a/bridges/relays/ethereum/src/ethereum_client.rs +++ b/bridges/relays/ethereum/src/ethereum_client.rs @@ -30,8 +30,14 @@ // You should have received a copy of the GNU General Public License // along with Parity-Bridge. If not, see . -use jsonrpsee_core::{client::ClientError, common::Params}; -use jsonrpsee_http::{HttpClient, RequestError, http_client}; +use jsonrpsee::common::Params; +use jsonrpsee::raw::{ + RawClient, + RawClientError, +}; +use jsonrpsee::transport::http::{ + HttpTransportClient, RequestError +}; use serde::de::DeserializeOwned; use serde_json::{from_value, to_value}; use crate::ethereum_sync_loop::MaybeConnectionError; @@ -45,7 +51,7 @@ const INT_SERIALIZATION_PROOF: &'static str = "integer serialization never fails const BOOL_SERIALIZATION_PROOF: &'static str = "bool serialization never fails; qed"; /// Ethereum client type. -pub type Client = HttpClient; +pub type Client = RawClient; /// All possible errors that can occur during interacting with Ethereum node. #[derive(Debug)] @@ -55,7 +61,7 @@ pub enum Error { /// Request not found (should never occur?). RequestNotFound, /// Failed to receive response. - ResponseRetrievalFailed(ClientError), + ResponseRetrievalFailed(RawClientError), /// Failed to parse response. ResponseParseFailed(serde_json::Error), /// We have received header with missing number and hash fields. @@ -75,7 +81,8 @@ impl MaybeConnectionError for Error { /// Returns client that is able to call RPCs on Ethereum node. pub fn client(uri: &str) -> Client { - http_client(uri) + let transport = HttpTransportClient::new(uri); + RawClient::new(transport) } /// Retrieve best known block number from Ethereum node. diff --git a/bridges/relays/ethereum/src/substrate_client.rs b/bridges/relays/ethereum/src/substrate_client.rs index 7260cb87a254b..232970881a5a4 100644 --- a/bridges/relays/ethereum/src/substrate_client.rs +++ b/bridges/relays/ethereum/src/substrate_client.rs @@ -31,8 +31,13 @@ // along with Parity-Bridge. If not, see . use codec::{Encode, Decode}; -use jsonrpsee_core::{client::ClientError, common::Params}; -use jsonrpsee_http::{HttpClient, RequestError, http_client}; +use jsonrpsee::common::Params; +use jsonrpsee::raw::{ + RawClient, RawClientError +}; +use jsonrpsee::transport::http::{ + HttpTransportClient, RequestError +}; use serde_json::{from_value, to_value}; use sp_core::crypto::Pair; use sp_runtime::traits::IdentifyAccount; @@ -52,7 +57,7 @@ use crate::substrate_types::{ /// Substrate client type. pub struct Client { /// Substrate RPC client. - rpc_client: HttpClient, + rpc_client: RawClient, /// Transactions signer. signer: sp_core::sr25519::Pair, /// Genesis block hash. @@ -67,7 +72,7 @@ pub enum Error { /// Request not found (should never occur?). RequestNotFound, /// Failed to receive response. - ResponseRetrievalFailed(ClientError), + ResponseRetrievalFailed(RawClientError), /// Failed to parse response. ResponseParseFailed, } @@ -83,8 +88,9 @@ impl MaybeConnectionError for Error { /// Returns client that is able to call RPCs on Substrate node. pub fn client(uri: &str, signer: sp_core::sr25519::Pair) -> Client { + let transport = HttpTransportClient::new(uri); Client { - rpc_client: http_client(uri), + rpc_client: RawClient::new(transport), signer, genesis_hash: None, } @@ -283,9 +289,9 @@ fn create_submit_transaction( signer: &sp_core::sr25519::Pair, index: node_primitives::Index, genesis_hash: H256, -) -> node_runtime::UncheckedExtrinsic { - let function = node_runtime::Call::BridgeEthPoa( - node_runtime::BridgeEthPoaCall::import_headers( +) -> bridge_node_runtime::UncheckedExtrinsic { + let function = bridge_node_runtime::Call::BridgeEthPoA( + bridge_node_runtime::BridgeEthPoACall::import_headers( headers .into_iter() .map(|header| { @@ -301,33 +307,31 @@ fn create_submit_transaction( let extra = |i: node_primitives::Index, f: node_primitives::Balance| { ( - frame_system::CheckVersion::::new(), - frame_system::CheckGenesis::::new(), - frame_system::CheckEra::::from(sp_runtime::generic::Era::Immortal), - frame_system::CheckNonce::::from(i), - frame_system::CheckWeight::::new(), - pallet_transaction_payment::ChargeTransactionPayment::::from(f), - Default::default(), + frame_system::CheckVersion::::new(), + frame_system::CheckGenesis::::new(), + frame_system::CheckEra::::from(sp_runtime::generic::Era::Immortal), + frame_system::CheckNonce::::from(i), + frame_system::CheckWeight::::new(), + pallet_transaction_payment::ChargeTransactionPayment::::from(f), ) }; - let raw_payload = node_runtime::SignedPayload::from_raw( + let raw_payload = bridge_node_runtime::SignedPayload::from_raw( function, extra(index, 0), ( - 198, // VERSION.spec_version as u32, + bridge_node_runtime::VERSION.spec_version as u32, genesis_hash, genesis_hash, (), (), (), - (), ), ); let signature = raw_payload.using_encoded(|payload| signer.sign(payload)); let signer: sp_runtime::MultiSigner = signer.public().into(); let (function, extra, _) = raw_payload.deconstruct(); - node_runtime::UncheckedExtrinsic::new_signed( + bridge_node_runtime::UncheckedExtrinsic::new_signed( function, signer.into_account().into(), signature.into(), diff --git a/bridges/relays/substrate/Cargo.toml b/bridges/relays/substrate/Cargo.toml index 5daa9104ba6f9..16ea51eb97f40 100644 --- a/bridges/relays/substrate/Cargo.toml +++ b/bridges/relays/substrate/Cargo.toml @@ -13,8 +13,20 @@ env_logger = "0.7.1" futures = "0.3.1" jsonrpsee = { git = "https://github.com/paritytech/jsonrpsee", features = ["ws"] } log = "0.4.8" -node-primitives = { version = "2.0.0", git = "https://github.com/paritytech/substrate" } serde_json = "1.0.41" -sp-core = { version = "2.0.0", git = "https://github.com/paritytech/substrate.git" } -sp-rpc = { version = "2.0.0", git = "https://github.com/paritytech/substrate.git" } url = "2.1.0" + +[dependencies.sp-core] +version = "2.0.0-alpha.2" +rev = "2afecf81ee19b8a6edb364b419190ea47c4a4a31" +git = "https://github.com/paritytech/substrate/" + +[dependencies.sp-rpc] +version = "2.0.0-alpha.2" +rev = "2afecf81ee19b8a6edb364b419190ea47c4a4a31" +git = "https://github.com/paritytech/substrate/" + +[dependencies.node-primitives] +version = "2.0.0-alpha.2" +rev = "2afecf81ee19b8a6edb364b419190ea47c4a4a31" +git = "https://github.com/paritytech/substrate/"