Remove keystore when doing calls and producing a proof (#4196)

* Remove keystore parameter.

* Fix tests.
This commit is contained in:
Tomasz Drwięga
2019-11-25 19:55:21 +01:00
committed by Bastian Köcher
parent d8ca2f37df
commit 309c6c70d8
4 changed files with 6 additions and 26 deletions
+5 -19
View File
@@ -24,7 +24,7 @@ use hash_db::Hasher;
use codec::{Decode, Encode};
use primitives::{
storage::well_known_keys, NativeOrEncoded, NeverNativeValue,
traits::{KeystoreExt, CodeExecutor}, hexdisplay::HexDisplay, hash::H256,
traits::CodeExecutor, hexdisplay::HexDisplay, hash::H256,
};
use overlayed_changes::OverlayedChangeSet;
use externalities::Extensions;
@@ -452,7 +452,6 @@ pub fn prove_execution<B, H, Exec>(
exec: &Exec,
method: &str,
call_data: &[u8],
keystore: Option<KeystoreExt>,
) -> Result<(Vec<u8>, StorageProof), Box<dyn Error>>
where
B: Backend<H>,
@@ -461,7 +460,7 @@ where
{
let trie_backend = backend.as_trie_backend()
.ok_or_else(|| Box::new(ExecutionError::UnableToGenerateProof) as Box<dyn Error>)?;
prove_execution_on_trie_backend(trie_backend, overlay, exec, method, call_data, keystore)
prove_execution_on_trie_backend(trie_backend, overlay, exec, method, call_data)
}
/// Prove execution using the given trie backend, overlayed changes, and call executor.
@@ -479,7 +478,6 @@ pub fn prove_execution_on_trie_backend<S, H, Exec>(
exec: &Exec,
method: &str,
call_data: &[u8],
keystore: Option<KeystoreExt>,
) -> Result<(Vec<u8>, StorageProof), Box<dyn Error>>
where
S: trie_backend_essence::TrieBackendStorage<H>,
@@ -487,12 +485,8 @@ where
Exec: CodeExecutor,
{
let proving_backend = proving_backend::ProvingBackend::new(trie_backend);
let mut extensions = Extensions::new();
if let Some(keystore) = keystore {
extensions.register(keystore);
}
let mut sm = StateMachine::<_, H, _, InMemoryChangesTrieStorage<H, u64>, Exec>::new(
&proving_backend, None, overlay, exec, method, call_data, extensions,
&proving_backend, None, overlay, exec, method, call_data, Extensions::default(),
);
let (result, _, _) = sm.execute_using_consensus_failure_handler::<_, NeverNativeValue, fn() -> _>(
@@ -512,7 +506,6 @@ pub fn execution_proof_check<H, Exec>(
exec: &Exec,
method: &str,
call_data: &[u8],
keystore: Option<KeystoreExt>,
) -> Result<Vec<u8>, Box<dyn Error>>
where
H: Hasher<Out=H256>,
@@ -520,7 +513,7 @@ where
H::Out: Ord + 'static,
{
let trie_backend = create_proof_check_backend::<H>(root.into(), proof)?;
execution_proof_check_on_trie_backend(&trie_backend, overlay, exec, method, call_data, keystore)
execution_proof_check_on_trie_backend(&trie_backend, overlay, exec, method, call_data)
}
/// Check execution proof on proving backend, generated by `prove_execution` call.
@@ -530,18 +523,13 @@ pub fn execution_proof_check_on_trie_backend<H, Exec>(
exec: &Exec,
method: &str,
call_data: &[u8],
keystore: Option<KeystoreExt>,
) -> Result<Vec<u8>, Box<dyn Error>>
where
H: Hasher<Out=H256>,
Exec: CodeExecutor,
{
let mut extensions = Extensions::new();
if let Some(keystore) = keystore {
extensions.register(keystore);
}
let mut sm = StateMachine::<_, H, _, InMemoryChangesTrieStorage<H, u64>, Exec>::new(
trie_backend, None, overlay, exec, method, call_data, extensions,
trie_backend, None, overlay, exec, method, call_data, Extensions::default(),
);
sm.execute_using_consensus_failure_handler::<_, NeverNativeValue, fn() -> _>(
@@ -914,7 +902,6 @@ mod tests {
&executor,
"test",
&[],
None,
).unwrap();
// check proof locally
@@ -925,7 +912,6 @@ mod tests {
&executor,
"test",
&[],
None,
).unwrap();
// check that both results are correct