Get substrate dependencies from crates io (#387)

* get Substrate dependencies from crates.io

* removing unused dependencies

* cargo fmt --all

* remove commented dependencies

* remove commented dependencies again

* try to fix compilation
This commit is contained in:
Svyatoslav Nikolsky
2020-09-30 15:26:13 +03:00
committed by Bastian Köcher
parent f43e405b5e
commit 07a514e9f7
26 changed files with 281 additions and 1170 deletions
+10 -38
View File
@@ -7,50 +7,22 @@ edition = "2018"
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
[dependencies]
bp-runtime = { path = "../../../primitives/runtime" }
bp-message-lane = { path = "../../../primitives/message-lane" }
derive_more = "0.99.2"
futures = { version = "0.3.5", features = ["compat"] }
jsonrpc-core = "15.0.0"
jsonrpc-core-client = "15.0.0"
jsonrpc-derive = "15.0.0"
# Substrate Based Dependencies
# Bridge dependencies
[dependencies.sc-client-api]
version = "2.0.0"
tag = 'v2.0.0'
git = "https://github.com/paritytech/substrate/"
bp-runtime = { path = "../../../primitives/runtime" }
bp-message-lane = { path = "../../../primitives/message-lane" }
[dependencies.sp-blockchain]
version = "2.0.0"
tag = 'v2.0.0'
git = "https://github.com/paritytech/substrate/"
# Substrate Dependencies
[dependencies.sp-core]
version = "2.0.0"
tag = 'v2.0.0'
git = "https://github.com/paritytech/substrate/"
[dependencies.sp-runtime]
version = "2.0.0"
tag = 'v2.0.0'
git = "https://github.com/paritytech/substrate/"
[dependencies.sp-state-machine]
version = "0.8.0"
tag = 'v2.0.0'
git = "https://github.com/paritytech/substrate/"
[dependencies.sp-trie]
version = "2.0.0"
tag = 'v2.0.0'
git = "https://github.com/paritytech/substrate/"
[dev-dependencies]
async-std = "1.6.5"
[dev-dependencies.substrate-test-runtime-client]
version = "2.0.0"
tag = 'v2.0.0'
git = "https://github.com/paritytech/substrate/"
sc-client-api = "2.0"
sp-blockchain = "2.0"
sp-core = "2.0"
sp-runtime = "2.0"
sp-state-machine = "0.8"
sp-trie = "2.0"
@@ -175,75 +175,3 @@ fn unwrap_or_best<Block: BlockT>(backend: &impl BackendT<Block>, block: Option<B
fn blockchain_err(err: BlockchainError) -> Error {
Error::Client(Box::new(err))
}
#[cfg(test)]
mod tests {
use super::*;
use sp_core::Blake2Hasher;
use sp_runtime::{codec::Decode, traits::Header as HeaderT};
use substrate_test_runtime_client::{
runtime::Block, Backend, DefaultTestClientBuilderExt, TestClientBuilder, TestClientBuilderExt,
};
const TEST_INSTANCE: InstanceId = [0, 0, 0, 1];
const TEST_LANE: LaneId = [0, 0, 0, 1];
fn test_key() -> StorageKey {
StorageKey(sp_core::storage::well_known_keys::CODE.to_vec())
}
struct TestRuntimeAdapter;
impl Runtime for TestRuntimeAdapter {
fn message_key(&self, instance: &InstanceId, _lane: &LaneId, _nonce: MessageNonce) -> Option<StorageKey> {
if *instance == TEST_INSTANCE {
Some(test_key())
} else {
None
}
}
fn inbound_lane_data_key(&self, instance: &InstanceId, _lane: &LaneId) -> Option<StorageKey> {
if *instance == TEST_INSTANCE {
Some(test_key())
} else {
None
}
}
}
fn test_handler() -> MessageLaneRpcHandler<Block, Backend, TestRuntimeAdapter> {
let builder = TestClientBuilder::new();
let (_, backend) = builder.build_with_backend();
MessageLaneRpcHandler::new(backend, Arc::new(TestRuntimeAdapter))
}
#[test]
fn storage_proof_is_actually_generated() {
// the only thing we actually care here is that RPC actually generates storage proof
// that can be verified from runtime
// proof is generated by RPC
let handler = test_handler();
let proof = handler
.prove_messages(TEST_INSTANCE, TEST_LANE, 1, 3, None)
.wait()
.unwrap();
// proof is then relayed + checked by runtime (sp_trie supports no_std)
// (storage root is known to underlying bridge pallet)
let root = *handler
.backend
.blockchain()
.header(BlockId::Number(0))
.unwrap()
.unwrap()
.state_root();
let proof = StorageProof::new(Decode::decode(&mut &proof[..]).unwrap());
let trie_db = proof.into_memory_db::<Blake2Hasher>();
let checked_storage_value =
sp_trie::read_trie_value::<sp_trie::Layout<_>, _>(&trie_db, &root, &test_key().0).unwrap();
assert!(checked_storage_value.is_some());
}
}