mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-30 16:37:24 +00:00
660c747c51
* [core/primitives] Update crunchy 0.1 => 0.2
* [core/primitives] Update fixed-hash 0.2 => 0.3.0-beta
* [core/primitives] Update `uint` 0.4 => 0.5.0-beta
* [core/state-machine] Fix errors emerged by fixed-hash update
* [core/state-db] Fix errors that emerged from fixed-hash update
* [core/sr-io] Fix errors that emerged from the fixed-hash update
* [core/trie] Fix errors emerged from fixed-hash updates
* [core/trie] Make use of new Hash::as_fixed_bytes_mut method in tests
* [core/sr-primitives] Fix errors emerged from updating fixed-hash
* [core/executor] Fix errors that emerged from fixed-hash update
* [core/test-runtime] Fix errors that emerged from updating fixed-hash
* [core/test-runtime] Fix an error that emerged from fixed-hash update
* [core/transaction-pool] Fix errors that emerged from updating fixed-hash
* Add From<u64> impl for hash types defined in core/primitives
* [core/client/db] Fix errors that emerged from fixed-hash update
* [core/{client/network/rpc}]: Fix errors emerged by fixed-hash update
* [node/{cli/executor/runtime}]: Fix errors emerged by updating fixed-hash
* [core/network]: Fix bug in parsing constant str
* Update Cargo.lock
- Add crunchy 0.2.1
- fixed-hash 0.2.2 => 0.3.0-beta.3
- Add static-assertions 0.2.5
- uint 0.4.1 => 0.5.0-beta.1
* [core/primitives]: Add fixed-hash/rustc-hex feature for FromStr impl
* [core/primitives] No longer provide From<u64> impl for hash types if byteorder support is not enabled
* [core/primitives] Revert to using From impl again in primitives tests
* [core/..] Fix some bugs that emerged by recent fixed-hash updates
* Update a bunch of Cargo.lock files
* [core/state-db] Re-add whitespace between attr and extern crate/mod
* [core/primitives] Fix bug in From<u64> impl for hash types using the wrong feature guard
94 lines
2.4 KiB
Rust
94 lines
2.4 KiB
Rust
// Copyright 2017-2018 Parity Technologies (UK) Ltd.
|
|
// This file is part of Substrate.
|
|
|
|
// Substrate is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
|
|
// Substrate is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with Substrate. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
//! Test utils
|
|
|
|
use std::collections::HashMap;
|
|
use primitives::H256;
|
|
use {DBValue, ChangeSet, CommitSet, MetaDb, HashDb};
|
|
|
|
#[derive(Default, Debug, Clone, PartialEq, Eq)]
|
|
pub struct TestDb {
|
|
pub data: HashMap<H256, DBValue>,
|
|
pub meta: HashMap<Vec<u8>, DBValue>,
|
|
}
|
|
|
|
impl MetaDb for TestDb {
|
|
type Error = ();
|
|
|
|
fn get_meta(&self, key: &[u8]) -> Result<Option<DBValue>, ()> {
|
|
Ok(self.meta.get(key).cloned())
|
|
}
|
|
}
|
|
|
|
impl HashDb for TestDb {
|
|
type Error = ();
|
|
type Hash = H256;
|
|
|
|
fn get(&self, key: &H256) -> Result<Option<DBValue>, ()> {
|
|
Ok(self.data.get(key).cloned())
|
|
}
|
|
}
|
|
|
|
impl TestDb {
|
|
pub fn commit(&mut self, commit: &CommitSet<H256>) {
|
|
self.data.extend(commit.data.inserted.iter().cloned());
|
|
for k in commit.data.deleted.iter() {
|
|
self.data.remove(k);
|
|
}
|
|
self.meta.extend(commit.meta.inserted.iter().cloned());
|
|
for k in commit.meta.deleted.iter() {
|
|
self.meta.remove(k);
|
|
}
|
|
}
|
|
|
|
pub fn data_eq(&self, other: &TestDb) -> bool {
|
|
self.data == other.data
|
|
}
|
|
}
|
|
|
|
pub fn make_changeset(inserted: &[u64], deleted: &[u64]) -> ChangeSet<H256> {
|
|
ChangeSet {
|
|
inserted: inserted
|
|
.iter()
|
|
.map(|v| {
|
|
(H256::from_low_u64_be(*v), H256::from_low_u64_be(*v).as_bytes().to_vec())
|
|
})
|
|
.collect(),
|
|
deleted: deleted.iter().map(|v| H256::from_low_u64_be(*v)).collect(),
|
|
}
|
|
}
|
|
|
|
pub fn make_commit(inserted: &[u64], deleted: &[u64]) -> CommitSet<H256> {
|
|
CommitSet {
|
|
data: make_changeset(inserted, deleted),
|
|
meta: ChangeSet::default(),
|
|
}
|
|
}
|
|
|
|
pub fn make_db(inserted: &[u64]) -> TestDb {
|
|
TestDb {
|
|
data: inserted
|
|
.iter()
|
|
.map(|v| {
|
|
(H256::from_low_u64_be(*v), H256::from_low_u64_be(*v).as_bytes().to_vec())
|
|
})
|
|
.collect(),
|
|
meta: Default::default(),
|
|
}
|
|
}
|
|
|