cleaning up hash reexports

This commit is contained in:
debris 2016-08-03 18:05:17 +02:00
parent 573e775ef9
commit e8c451ac82
42 changed files with 102 additions and 148 deletions

View File

@ -14,8 +14,7 @@
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with Parity. If not, see <http://www.gnu.org/licenses/>. // along with Parity. If not, see <http://www.gnu.org/licenses/>.
use util::bytes::Bytes; use util::{Bytes, U256, H256};
use util::numbers::{U256,H256};
use header::BlockNumber; use header::BlockNumber;
/// Best block info. /// Best block info.

View File

@ -14,7 +14,7 @@
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with Parity. If not, see <http://www.gnu.org/licenses/>. // along with Parity. If not, see <http://www.gnu.org/licenses/>.
use util::numbers::{U256,H256}; use util::{U256,H256};
use header::BlockNumber; use header::BlockNumber;
/// Brief info about inserted block. /// Brief info about inserted block.

View File

@ -14,9 +14,7 @@
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with Parity. If not, see <http://www.gnu.org/licenses/>. // along with Parity. If not, see <http://www.gnu.org/licenses/>.
use util::hash::H2048; use util::{U256, H2048, Bytes};
use util::numbers::U256;
use util::bytes::Bytes;
use header::BlockNumber; use header::BlockNumber;
use super::fork::Fork; use super::fork::Fork;
use super::bloom::Bloom; use super::bloom::Bloom;

View File

@ -16,7 +16,7 @@
//! Import route. //! Import route.
use util::hash::H256; use util::H256;
use blockchain::block_info::{BlockInfo, BlockLocation}; use blockchain::block_info::{BlockInfo, BlockLocation};
/// Import route for newly inserted block. /// Import route for newly inserted block.
@ -67,8 +67,7 @@ impl From<BlockInfo> for ImportRoute {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use util::hash::H256; use util::{U256, H256};
use util::numbers::U256;
use blockchain::block_info::{BlockInfo, BlockLocation, BranchBecomingCanonChainData}; use blockchain::block_info::{BlockInfo, BlockLocation, BranchBecomingCanonChainData};
use blockchain::ImportRoute; use blockchain::ImportRoute;

View File

@ -1,5 +1,5 @@
use std::collections::HashMap; use std::collections::HashMap;
use util::numbers::H256; use util::H256;
use header::BlockNumber; use header::BlockNumber;
use blockchain::block_info::BlockInfo; use blockchain::block_info::BlockInfo;
use blooms::BloomGroup; use blooms::BloomGroup;

View File

@ -102,7 +102,7 @@ pub fn new_builtin_exec(name: &str) -> Box<Fn(&[u8], &mut [u8])> {
let mut it: InType = InType { hash: H256::new(), v: H256::new(), r: H256::new(), s: H256::new() }; let mut it: InType = InType { hash: H256::new(), v: H256::new(), r: H256::new(), s: H256::new() };
it.copy_raw(input); it.copy_raw(input);
if it.v == H256::from(&U256::from(27)) || it.v == H256::from(&U256::from(28)) { if it.v == H256::from(&U256::from(27)) || it.v == H256::from(&U256::from(28)) {
let s = Signature::from_rsv(&it.r, &it.s, it.v[31] - 27); let s = signature_from_rsv(&it.r, &it.s, it.v[31] - 27);
if ec::is_valid(&s) { if ec::is_valid(&s) {
if let Ok(p) = ec::recover(&s, &it.hash) { if let Ok(p) = ec::recover(&s, &it.hash) {
let r = p.as_slice().sha3(); let r = p.as_slice().sha3();

View File

@ -14,10 +14,10 @@
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with Parity. If not, see <http://www.gnu.org/licenses/>. // along with Parity. If not, see <http://www.gnu.org/licenses/>.
use util::numbers::*;
use ipc::{IpcConfig, BinaryConvertError};
use std::collections::VecDeque; use std::collections::VecDeque;
use std::mem; use std::mem;
use ipc::{IpcConfig, BinaryConvertError};
use util::H256;
/// Represents what has to be handled by actor listening to chain events /// Represents what has to be handled by actor listening to chain events
#[derive(Ipc)] #[derive(Ipc)]

View File

@ -27,7 +27,7 @@ use time::precise_time_ns;
use util::{journaldb, rlp, Bytes, View, PerfTimer, Itertools, Mutex, RwLock}; use util::{journaldb, rlp, Bytes, View, PerfTimer, Itertools, Mutex, RwLock};
use util::journaldb::JournalDB; use util::journaldb::JournalDB;
use util::rlp::{UntrustedRlp}; use util::rlp::{UntrustedRlp};
use util::numbers::*; use util::{U256, H256, Address, H2048, Uint};
use util::panics::*; use util::panics::*;
use util::io::*; use util::io::*;
use util::sha3::*; use util::sha3::*;
@ -256,7 +256,7 @@ impl Client {
} }
} }
let mut last_hashes = LastHashes::new(); let mut last_hashes = LastHashes::new();
last_hashes.resize(256, H256::new()); last_hashes.resize(256, Default::default());
last_hashes[0] = parent_hash; last_hashes[0] = parent_hash;
for i in 0..255 { for i in 0..255 {
match self.chain.block_details(&last_hashes[i]) { match self.chain.block_details(&last_hashes[i]) {
@ -648,7 +648,7 @@ impl BlockChainClient for Client {
timestamp: view.timestamp(), timestamp: view.timestamp(),
difficulty: view.difficulty(), difficulty: view.difficulty(),
last_hashes: last_hashes, last_hashes: last_hashes,
gas_used: U256::zero(), gas_used: Default::default(),
gas_limit: U256::max_value(), gas_limit: U256::max_value(),
}; };
// that's just a copy of the state. // that's just a copy of the state.
@ -923,7 +923,7 @@ impl BlockChainClient for Client {
entry: log, entry: log,
block_hash: hash.clone(), block_hash: hash.clone(),
block_number: number, block_number: number,
transaction_hash: hashes.get(index).cloned().unwrap_or_else(H256::new), transaction_hash: hashes.get(index).cloned().unwrap_or_else(Default::default),
transaction_index: index, transaction_index: index,
log_index: log_index + i log_index: log_index + i
}) })

View File

@ -14,10 +14,7 @@
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with Parity. If not, see <http://www.gnu.org/licenses/>. // along with Parity. If not, see <http://www.gnu.org/licenses/>.
use util::bytes::Bytes; use util::{U256, Address, H256, H2048, Bytes, Itertools};
use util::hash::{Address, H256, H2048};
use util::numbers::U256;
use util::Itertools;
use blockchain::TreeRoute; use blockchain::TreeRoute;
use block_queue::BlockQueueInfo; use block_queue::BlockQueueInfo;
use block::{OpenBlock, SealedBlock}; use block::{OpenBlock, SealedBlock};

View File

@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with Parity. If not, see <http://www.gnu.org/licenses/>. // along with Parity. If not, see <http://www.gnu.org/licenses/>.
use util::*; use std::cmp;
use util::{U256, Address, H256, Hashable};
use header::BlockNumber; use header::BlockNumber;
use ethjson; use ethjson;
@ -45,7 +46,7 @@ impl Default for EnvInfo {
fn default() -> Self { fn default() -> Self {
EnvInfo { EnvInfo {
number: 0, number: 0,
author: Address::new(), author: Default::default(),
timestamp: 0, timestamp: 0,
difficulty: 0.into(), difficulty: 0.into(),
gas_limit: 0.into(), gas_limit: 0.into(),
@ -65,7 +66,7 @@ impl From<ethjson::vm::Env> for EnvInfo {
gas_limit: e.gas_limit.into(), gas_limit: e.gas_limit.into(),
timestamp: e.timestamp.into(), timestamp: e.timestamp.into(),
last_hashes: (1..cmp::min(number + 1, 257)).map(|i| format!("{}", number - i).as_bytes().sha3()).collect(), last_hashes: (1..cmp::min(number + 1, 257)).map(|i| format!("{}", number - i).as_bytes().sha3()).collect(),
gas_used: U256::zero(), gas_used: Default::default(),
} }
} }
} }
@ -74,10 +75,9 @@ impl From<ethjson::vm::Env> for EnvInfo {
mod tests { mod tests {
extern crate rustc_serialize; extern crate rustc_serialize;
use super::*;
use util::hash::*;
use util::numbers::U256;
use std::str::FromStr; use std::str::FromStr;
use super::*;
use util::{U256, Address};
use ethjson; use ethjson;
#[test] #[test]

View File

@ -372,7 +372,7 @@ mod tests {
let vm_factory = Default::default(); let vm_factory = Default::default();
let mut b = OpenBlock::new(engine.deref(), &vm_factory, Default::default(), false, db, &genesis_header, last_hashes, Address::zero(), (3141562.into(), 31415620.into()), vec![]).unwrap(); let mut b = OpenBlock::new(engine.deref(), &vm_factory, Default::default(), false, db, &genesis_header, last_hashes, Address::zero(), (3141562.into(), 31415620.into()), vec![]).unwrap();
let mut uncle = Header::new(); let mut uncle = Header::new();
let uncle_author = address_from_hex("ef2d6d194084c2de36e0dabfce45d046b37d1106"); let uncle_author: Address = "ef2d6d194084c2de36e0dabfce45d046b37d1106".parse().unwrap();
uncle.author = uncle_author.clone(); uncle.author = uncle_author.clone();
b.push_uncle(uncle).unwrap(); b.push_uncle(uncle).unwrap();

View File

@ -69,12 +69,12 @@ mod tests {
let mut db = db_result.take(); let mut db = db_result.take();
spec.ensure_db_good(db.as_hashdb_mut()); spec.ensure_db_good(db.as_hashdb_mut());
let s = State::from_existing(db, genesis_header.state_root.clone(), engine.account_start_nonce(), Default::default()).unwrap(); let s = State::from_existing(db, genesis_header.state_root.clone(), engine.account_start_nonce(), Default::default()).unwrap();
assert_eq!(s.balance(&address_from_hex("0000000000000000000000000000000000000001")), U256::from(1u64)); assert_eq!(s.balance(&"0000000000000000000000000000000000000001".parse().unwrap()), U256::from(1u64));
assert_eq!(s.balance(&address_from_hex("0000000000000000000000000000000000000002")), U256::from(1u64)); assert_eq!(s.balance(&"0000000000000000000000000000000000000002".parse().unwrap()), U256::from(1u64));
assert_eq!(s.balance(&address_from_hex("0000000000000000000000000000000000000003")), U256::from(1u64)); assert_eq!(s.balance(&"0000000000000000000000000000000000000003".parse().unwrap()), U256::from(1u64));
assert_eq!(s.balance(&address_from_hex("0000000000000000000000000000000000000004")), U256::from(1u64)); assert_eq!(s.balance(&"0000000000000000000000000000000000000004".parse().unwrap()), U256::from(1u64));
assert_eq!(s.balance(&address_from_hex("102e61f5d8f9bc71d0ad4a084df4e65e05ce0e1c")), U256::from(1u64) << 200); assert_eq!(s.balance(&"102e61f5d8f9bc71d0ad4a084df4e65e05ce0e1c".parse().unwrap()), U256::from(1u64) << 200);
assert_eq!(s.balance(&address_from_hex("0000000000000000000000000000000000000000")), U256::from(0u64)); assert_eq!(s.balance(&"0000000000000000000000000000000000000000".parse().unwrap()), U256::from(0u64));
} }
#[test] #[test]

View File

@ -29,8 +29,7 @@
//! extern crate rustc_serialize; //! extern crate rustc_serialize;
//! //!
//! use util::crypto::KeyPair; //! use util::crypto::KeyPair;
//! use util::hash::Address; //! use util::{Uint, U256, Address};
//! use util::numbers::{Uint, U256};
//! use ethcore::miner::{TransactionQueue, AccountDetails, TransactionOrigin}; //! use ethcore::miner::{TransactionQueue, AccountDetails, TransactionOrigin};
//! use ethcore::transaction::*; //! use ethcore::transaction::*;
//! use rustc_serialize::hex::FromHex; //! use rustc_serialize::hex::FromHex;
@ -85,8 +84,7 @@ use std::default::Default;
use std::cmp::{Ordering}; use std::cmp::{Ordering};
use std::cmp; use std::cmp;
use std::collections::{HashMap, BTreeSet}; use std::collections::{HashMap, BTreeSet};
use util::numbers::{Uint, U256}; use util::{Address, H256, Uint, U256};
use util::hash::{Address, H256};
use util::table::Table; use util::table::Table;
use transaction::*; use transaction::*;
use error::{Error, TransactionError}; use error::{Error, TransactionError};

View File

@ -18,10 +18,7 @@
use account_db::{AccountDB, AccountDBMut}; use account_db::{AccountDB, AccountDBMut};
use error::Error; use error::Error;
use util::{U256, FixedHash, H256, Bytes, HashDB, SHA3_EMPTY, TrieDB};
use util::{Bytes, HashDB, SHA3_EMPTY, TrieDB};
use util::hash::{FixedHash, H256};
use util::numbers::U256;
use util::rlp::{DecoderError, Rlp, RlpStream, Stream, UntrustedRlp, View}; use util::rlp::{DecoderError, Rlp, RlpStream, Stream, UntrustedRlp, View};
// An alternate account structure from ::account::Account. // An alternate account structure from ::account::Account.

View File

@ -145,8 +145,7 @@ mod tests {
use super::AbridgedBlock; use super::AbridgedBlock;
use types::transaction::{Action, Transaction}; use types::transaction::{Action, Transaction};
use util::numbers::U256; use util::{Address, H256, FixedHash, U256};
use util::hash::{Address, H256, FixedHash};
use util::{Bytes, RlpStream, Stream}; use util::{Bytes, RlpStream, Stream};
fn encode_block(b: &Block) -> Bytes { fn encode_block(b: &Block) -> Bytes {

View File

@ -15,8 +15,7 @@
// along with Parity. If not, see <http://www.gnu.org/licenses/>. // along with Parity. If not, see <http://www.gnu.org/licenses/>.
use util::rlp::*; use util::rlp::*;
use util::numbers::{Uint, U256}; use util::{Address, H256, Uint, U256};
use util::hash::{Address, H256};
use ethjson; use ethjson;
use super::seal::Seal; use super::seal::Seal;

View File

@ -16,13 +16,11 @@
//! Diff between two accounts. //! Diff between two accounts.
use util::numbers::*;
use std::cmp::*; use std::cmp::*;
use std::fmt; use std::{fmt, mem};
use ipc::binary::{BinaryConvertError, BinaryConvertable};
use util::Bytes;
use std::collections::{VecDeque, BTreeMap}; use std::collections::{VecDeque, BTreeMap};
use std::mem; use util::{U256, H256, Uint, Bytes};
use ipc::binary::{BinaryConvertError, BinaryConvertable};
#[derive(Debug, PartialEq, Eq, Clone, Binary)] #[derive(Debug, PartialEq, Eq, Clone, Binary)]
/// Diff type for specifying a change (or not). /// Diff type for specifying a change (or not).

View File

@ -16,11 +16,11 @@
//! Blockhain info type definition //! Blockhain info type definition
use util::numbers::*;
use header::BlockNumber;
use ipc::binary::BinaryConvertError;
use std::mem; use std::mem;
use std::collections::VecDeque; use std::collections::VecDeque;
use util::{U256, H256};
use ipc::binary::BinaryConvertError;
use header::BlockNumber;
/// Information about the blockchain gathered together. /// Information about the blockchain gathered together.
#[derive(Debug, Binary)] #[derive(Debug, Binary)]

View File

@ -16,8 +16,7 @@
//! Transaction execution format module. //! Transaction execution format module.
use util::numbers::*; use util::{Bytes, U256, Address, U512};
use util::Bytes;
use util::rlp::*; use util::rlp::*;
use trace::{VMTrace, FlatTrace}; use trace::{VMTrace, FlatTrace};
use types::log_entry::LogEntry; use types::log_entry::LogEntry;

View File

@ -16,18 +16,15 @@
//! Log entry type definition. //! Log entry type definition.
use util::numbers::*; use std::mem;
use std::ops::Deref; use std::ops::Deref;
use std::collections::VecDeque;
use util::{H256, Address, Bytes, HeapSizeOf, FixedHash, Hashable};
use util::rlp::*; use util::rlp::*;
use util::Bytes; use ipc::binary::BinaryConvertError;
use util::HeapSizeOf;
use util::sha3::*;
use basic_types::LogBloom; use basic_types::LogBloom;
use header::BlockNumber; use header::BlockNumber;
use ethjson; use ethjson;
use ipc::binary::BinaryConvertError;
use std::mem;
use std::collections::VecDeque;
/// A record of execution for a `LOG` operation. /// A record of execution for a `LOG` operation.
#[derive(Default, Debug, Clone, PartialEq, Eq, Binary)] #[derive(Default, Debug, Clone, PartialEq, Eq, Binary)]

View File

@ -16,15 +16,15 @@
//! Receipt //! Receipt
use util::numbers::*; use std::mem;
use std::collections::VecDeque;
use util::{H256, U256, Address};
use util::rlp::*; use util::rlp::*;
use util::HeapSizeOf; use util::HeapSizeOf;
use basic_types::LogBloom; use basic_types::LogBloom;
use header::BlockNumber; use header::BlockNumber;
use log_entry::{LogEntry, LocalizedLogEntry}; use log_entry::{LogEntry, LocalizedLogEntry};
use ipc::binary::BinaryConvertError; use ipc::binary::BinaryConvertError;
use std::mem;
use std::collections::VecDeque;
/// Information describing execution of a transaction. /// Information describing execution of a transaction.
#[derive(Default, Debug, Clone, Binary)] #[derive(Default, Debug, Clone, Binary)]
@ -45,7 +45,7 @@ impl Receipt {
Receipt { Receipt {
state_root: state_root, state_root: state_root,
gas_used: gas_used, gas_used: gas_used,
log_bloom: logs.iter().fold(LogBloom::new(), |mut b, l| { b = &b | &l.bloom(); b }), //TODO: use |= operator log_bloom: logs.iter().fold(Default::default(), |mut b, l| { b = &b | &l.bloom(); b }), //TODO: use |= operator
logs: logs, logs: logs,
} }
} }

View File

@ -16,13 +16,12 @@
//! State diff module. //! State diff module.
use util::numbers::*; use std::{mem, fmt};
use account_diff::*;
use ipc::binary::BinaryConvertError;
use std::mem;
use std::fmt;
use std::ops::*; use std::ops::*;
use std::collections::{VecDeque, BTreeMap}; use std::collections::{VecDeque, BTreeMap};
use util::Address;
use account_diff::*;
use ipc::binary::BinaryConvertError;
#[derive(Debug, PartialEq, Eq, Clone, Binary)] #[derive(Debug, PartialEq, Eq, Clone, Binary)]
/// Expression for the delta between two system states. Encoded the /// Expression for the delta between two system states. Encoded the

View File

@ -17,6 +17,8 @@
//! Trace filters type definitions //! Trace filters type definitions
use std::ops::Range; use std::ops::Range;
use std::mem;
use std::collections::VecDeque;
use bloomchain::{Filter as BloomFilter, Bloom, Number}; use bloomchain::{Filter as BloomFilter, Bloom, Number};
use util::{Address, FixedHash}; use util::{Address, FixedHash};
use util::sha3::Hashable; use util::sha3::Hashable;
@ -24,8 +26,6 @@ use basic_types::LogBloom;
use trace::flat::FlatTrace; use trace::flat::FlatTrace;
use types::trace_types::trace::{Action, Res}; use types::trace_types::trace::{Action, Res};
use ipc::binary::BinaryConvertError; use ipc::binary::BinaryConvertError;
use std::mem;
use std::collections::VecDeque;
/// Addresses filter. /// Addresses filter.
/// ///
@ -55,7 +55,7 @@ impl AddressesFilter {
/// Returns blooms of this addresses filter. /// Returns blooms of this addresses filter.
pub fn blooms(&self) -> Vec<LogBloom> { pub fn blooms(&self) -> Vec<LogBloom> {
match self.list.is_empty() { match self.list.is_empty() {
true => vec![LogBloom::new()], true => vec![Default::default()],
false => self.list.iter() false => self.list.iter()
.map(|address| LogBloom::from_bloomed(&address.sha3())) .map(|address| LogBloom::from_bloomed(&address.sha3()))
.collect(), .collect(),
@ -142,7 +142,6 @@ mod tests {
use trace::trace::{Action, Call, Res, Create, CreateResult, Suicide}; use trace::trace::{Action, Call, Res, Create, CreateResult, Suicide};
use trace::flat::FlatTrace; use trace::flat::FlatTrace;
use trace::{Filter, AddressesFilter}; use trace::{Filter, AddressesFilter};
use basic_types::LogBloom;
use types::executed::CallType; use types::executed::CallType;
#[test] #[test]
@ -154,7 +153,7 @@ mod tests {
}; };
let blooms = filter.bloom_possibilities(); let blooms = filter.bloom_possibilities();
assert_eq!(blooms, vec![LogBloom::new()]); assert_eq!(blooms, vec![Default::default()]);
} }
#[test] #[test]

View File

@ -16,19 +16,20 @@
//! Transaction data structure. //! Transaction data structure.
use util::numbers::*; use std::mem;
use std::collections::VecDeque;
use util::{H256, Address, U256, H520};
use std::ops::Deref; use std::ops::Deref;
use util::rlp::*; use util::rlp::*;
use util::sha3::*; use util::sha3::*;
use util::{UtilError, CryptoError, Bytes, Signature, Secret, ec}; use util::{UtilError, CryptoError, Bytes, Signature, Secret, ec};
use util::crypto::{signature_from_rsv, signature_to_rsv};
use std::cell::*; use std::cell::*;
use error::*; use error::*;
use evm::Schedule; use evm::Schedule;
use header::BlockNumber; use header::BlockNumber;
use ethjson; use ethjson;
use ipc::binary::BinaryConvertError; use ipc::binary::BinaryConvertError;
use std::mem;
use std::collections::VecDeque;
#[derive(Debug, Clone, PartialEq, Eq, Binary)] #[derive(Debug, Clone, PartialEq, Eq, Binary)]
/// Transaction action type. /// Transaction action type.
@ -146,7 +147,7 @@ impl Transaction {
/// Signs the transaction with signature. /// Signs the transaction with signature.
pub fn with_signature(self, sig: H520) -> SignedTransaction { pub fn with_signature(self, sig: H520) -> SignedTransaction {
let (r, s, v) = sig.to_rsv(); let (r, s, v) = signature_to_rsv(&sig);
SignedTransaction { SignedTransaction {
unsigned: self, unsigned: self,
r: r, r: r,
@ -162,8 +163,8 @@ impl Transaction {
pub fn invalid_sign(self) -> SignedTransaction { pub fn invalid_sign(self) -> SignedTransaction {
SignedTransaction { SignedTransaction {
unsigned: self, unsigned: self,
r: U256::zero(), r: Default::default(),
s: U256::zero(), s: Default::default(),
v: 0, v: 0,
hash: Cell::new(None), hash: Cell::new(None),
sender: Cell::new(None), sender: Cell::new(None),
@ -174,8 +175,8 @@ impl Transaction {
pub fn fake_sign(self, from: Address) -> SignedTransaction { pub fn fake_sign(self, from: Address) -> SignedTransaction {
SignedTransaction { SignedTransaction {
unsigned: self, unsigned: self,
r: U256::zero(), r: Default::default(),
s: U256::zero(), s: Default::default(),
v: 0, v: 0,
hash: Cell::new(None), hash: Cell::new(None),
sender: Cell::new(Some(from)), sender: Cell::new(Some(from)),
@ -290,7 +291,7 @@ impl SignedTransaction {
pub fn standard_v(&self) -> u8 { match self.v { 27 => 0, 28 => 1, _ => 4 } } pub fn standard_v(&self) -> u8 { match self.v { 27 => 0, 28 => 1, _ => 4 } }
/// Construct a signature object from the sig. /// Construct a signature object from the sig.
pub fn signature(&self) -> Signature { Signature::from_rsv(&From::from(&self.r), &From::from(&self.s), self.standard_v()) } pub fn signature(&self) -> Signature { signature_from_rsv(&From::from(&self.r), &From::from(&self.s), self.standard_v()) }
/// Checks whether the signature has a low 's' value. /// Checks whether the signature has a low 's' value.
pub fn check_low_s(&self) -> Result<(), Error> { pub fn check_low_s(&self) -> Result<(), Error> {
@ -360,10 +361,10 @@ fn sender_test() {
assert_eq!(t.gas_price, U256::from(0x01u64)); assert_eq!(t.gas_price, U256::from(0x01u64));
assert_eq!(t.nonce, U256::from(0x00u64)); assert_eq!(t.nonce, U256::from(0x00u64));
if let Action::Call(ref to) = t.action { if let Action::Call(ref to) = t.action {
assert_eq!(*to, address_from_hex("095e7baea6a6c7c4c2dfeb977efac326af552d87")); assert_eq!(*to, "095e7baea6a6c7c4c2dfeb977efac326af552d87".parse().unwrap());
} else { panic!(); } } else { panic!(); }
assert_eq!(t.value, U256::from(0x0au64)); assert_eq!(t.value, U256::from(0x0au64));
assert_eq!(t.sender().unwrap(), address_from_hex("0f65fe9276bc9a24ae7083ae28e2660ef72df99e")); assert_eq!(t.sender().unwrap(), "0f65fe9276bc9a24ae7083ae28e2660ef72df99e".parse().unwrap());
} }
#[test] #[test]

View File

@ -16,10 +16,10 @@
//! Tree route info type definition //! Tree route info type definition
use util::numbers::H256;
use ipc::BinaryConvertError;
use std::collections::VecDeque; use std::collections::VecDeque;
use std::mem; use std::mem;
use ipc::BinaryConvertError;
use util::H256;
/// Represents a tree route between `from` block and `to` block: /// Represents a tree route between `from` block and `to` block:
#[derive(Debug, Binary)] #[derive(Debug, Binary)]

View File

@ -17,7 +17,7 @@
//! Binary representation of types //! Binary representation of types
use util::bytes::Populatable; use util::bytes::Populatable;
use util::numbers::{U256, U512, H256, H2048, Address}; use util::{U256, U512, H256, H2048, Address};
use std::mem; use std::mem;
use std::collections::{VecDeque, BTreeMap}; use std::collections::{VecDeque, BTreeMap};
use std::ops::Range; use std::ops::Range;

View File

@ -44,7 +44,7 @@ impl Account {
mod tests { mod tests {
use serde_json; use serde_json;
use spec::account::Account; use spec::account::Account;
use util::numbers::U256; use util::U256;
use uint::Uint; use uint::Uint;
use bytes::Bytes; use bytes::Bytes;

View File

@ -19,7 +19,7 @@
use std::str::FromStr; use std::str::FromStr;
use serde::{Deserialize, Deserializer, Error}; use serde::{Deserialize, Deserializer, Error};
use serde::de::Visitor; use serde::de::Visitor;
use util::numbers::{U256, Uint as U}; use util::{U256, Uint as U};
/// Lenient uint json deserialization for test json files. /// Lenient uint json deserialization for test json files.
#[derive(Default, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy)] #[derive(Default, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy)]
@ -88,7 +88,7 @@ impl Visitor for UintVisitor {
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use serde_json; use serde_json;
use util::numbers::U256; use util::U256;
use uint::Uint; use uint::Uint;
#[test] #[test]

View File

@ -39,7 +39,7 @@ pub struct Call {
mod tests { mod tests {
use serde_json; use serde_json;
use vm::Call; use vm::Call;
use util::numbers::U256; use util::U256;
use uint::Uint; use uint::Uint;
use util::hash::Address as Hash160; use util::hash::Address as Hash160;
use hash::Address; use hash::Address;

View File

@ -27,7 +27,7 @@ use std::ops::Deref;
use ethsync::{SyncProvider, SyncState}; use ethsync::{SyncProvider, SyncState};
use ethcore::miner::{MinerService, ExternalMinerService}; use ethcore::miner::{MinerService, ExternalMinerService};
use jsonrpc_core::*; use jsonrpc_core::*;
use util::numbers::*; use util::{H256, Address, FixedHash, U256, H64, Uint};
use util::sha3::*; use util::sha3::*;
use util::rlp::{encode, decode, UntrustedRlp, View}; use util::rlp::{encode, decode, UntrustedRlp, View};
use util::{FromHex, Mutex}; use util::{FromHex, Mutex};

View File

@ -60,7 +60,7 @@ use ethcore::miner::MinerService;
use ethcore::client::MiningBlockChainClient; use ethcore::client::MiningBlockChainClient;
use ethcore::transaction::{Action, SignedTransaction, Transaction}; use ethcore::transaction::{Action, SignedTransaction, Transaction};
use ethcore::account_provider::{AccountProvider, Error as AccountError}; use ethcore::account_provider::{AccountProvider, Error as AccountError};
use util::numbers::*; use util::{U256, H256, Address};
use util::rlp::encode; use util::rlp::encode;
use util::bytes::ToPretty; use util::bytes::ToPretty;
use jsonrpc_core::{Error, ErrorCode, Value, to_value}; use jsonrpc_core::{Error, ErrorCode, Value, to_value};
@ -100,13 +100,13 @@ fn prepare_transaction<C, M>(client: &C, miner: &M, request: TransactionRequest)
nonce: request.nonce nonce: request.nonce
.or_else(|| miner .or_else(|| miner
.last_nonce(&request.from) .last_nonce(&request.from)
.map(|nonce| nonce + U256::one())) .map(|nonce| nonce + 1.into()))
.unwrap_or_else(|| client.latest_nonce(&request.from)), .unwrap_or_else(|| client.latest_nonce(&request.from)),
action: request.to.map_or(Action::Create, Action::Call), action: request.to.map_or(Action::Create, Action::Call),
gas: request.gas.unwrap_or_else(|| miner.sensible_gas_limit()), gas: request.gas.unwrap_or_else(|| miner.sensible_gas_limit()),
gas_price: request.gas_price.unwrap_or_else(|| default_gas_price(client, miner)), gas_price: request.gas_price.unwrap_or_else(|| default_gas_price(client, miner)),
value: request.value.unwrap_or_else(U256::zero), value: request.value.unwrap_or_else(Default::default),
data: request.data.map_or_else(Vec::new, |b| b.to_vec()), data: request.data.map_or_else(Vec::new, |b| b.to_vec()),
} }
} }

View File

@ -20,7 +20,7 @@ use std::sync::Arc;
use std::time::{Instant, Duration}; use std::time::{Instant, Duration};
use jsonrpc_core::IoHandler; use jsonrpc_core::IoHandler;
use util::hash::{Address, H256, FixedHash}; use util::hash::{Address, H256, FixedHash};
use util::numbers::{Uint, U256}; use util::{Uint, U256};
use util::Mutex; use util::Mutex;
use ethcore::account_provider::AccountProvider; use ethcore::account_provider::AccountProvider;
use ethcore::client::{TestBlockChainClient, EachBlockWith, Executed, TransactionID}; use ethcore::client::{TestBlockChainClient, EachBlockWith, Executed, TransactionID};

View File

@ -22,8 +22,7 @@ use v1::impls::EthSigningQueueClient;
use v1::traits::EthSigning; use v1::traits::EthSigning;
use v1::helpers::{ConfirmationsQueue, SigningQueue}; use v1::helpers::{ConfirmationsQueue, SigningQueue};
use v1::tests::helpers::TestMinerService; use v1::tests::helpers::TestMinerService;
use util::{Address, FixedHash}; use util::{Address, FixedHash, Uint, U256, H256};
use util::numbers::{Uint, U256, H256};
use ethcore::account_provider::AccountProvider; use ethcore::account_provider::AccountProvider;
use ethcore::client::TestBlockChainClient; use ethcore::client::TestBlockChainClient;
use ethcore::transaction::{Transaction, Action}; use ethcore::transaction::{Transaction, Action};

View File

@ -21,7 +21,7 @@ use v1::{EthcoreSet, EthcoreSetClient};
use ethcore::miner::MinerService; use ethcore::miner::MinerService;
use ethcore::client::TestBlockChainClient; use ethcore::client::TestBlockChainClient;
use v1::tests::helpers::TestMinerService; use v1::tests::helpers::TestMinerService;
use util::numbers::*; use util::{U256, Address};
use rustc_serialize::hex::FromHex; use rustc_serialize::hex::FromHex;
use super::manage_network::TestManageNetwork; use super::manage_network::TestManageNetwork;
use ethsync::ManageNetwork; use ethsync::ManageNetwork;

View File

@ -18,11 +18,10 @@ use std::sync::Arc;
use jsonrpc_core::IoHandler; use jsonrpc_core::IoHandler;
use v1::{Net, NetClient}; use v1::{Net, NetClient};
use v1::tests::helpers::{Config, TestSyncProvider}; use v1::tests::helpers::{Config, TestSyncProvider};
use util::numbers::*;
fn sync_provider() -> Arc<TestSyncProvider> { fn sync_provider() -> Arc<TestSyncProvider> {
Arc::new(TestSyncProvider::new(Config { Arc::new(TestSyncProvider::new(Config {
network_id: U256::from(3), network_id: 3.into(),
num_peers: 120, num_peers: 120,
})) }))
} }

View File

@ -17,7 +17,7 @@
use std::sync::Arc; use std::sync::Arc;
use std::str::FromStr; use std::str::FromStr;
use jsonrpc_core::IoHandler; use jsonrpc_core::IoHandler;
use util::numbers::*; use util::{U256, Uint, Address};
use ethcore::account_provider::AccountProvider; use ethcore::account_provider::AccountProvider;
use v1::{PersonalClient, Personal}; use v1::{PersonalClient, Personal};
use v1::tests::helpers::TestMinerService; use v1::tests::helpers::TestMinerService;

View File

@ -17,7 +17,7 @@
use std::sync::Arc; use std::sync::Arc;
use std::str::FromStr; use std::str::FromStr;
use jsonrpc_core::IoHandler; use jsonrpc_core::IoHandler;
use util::numbers::*; use util::{U256, Uint, Address};
use ethcore::account_provider::AccountProvider; use ethcore::account_provider::AccountProvider;
use ethcore::client::TestBlockChainClient; use ethcore::client::TestBlockChainClient;
use ethcore::transaction::{Transaction, Action}; use ethcore::transaction::{Transaction, Action};

View File

@ -28,7 +28,7 @@ extern crate ethcore_util;
extern crate rand; extern crate rand;
use test::{Bencher, black_box}; use test::{Bencher, black_box};
use ethcore_util::numbers::*; use ethcore_util::U256;
#[bench] #[bench]
fn u256_add(b: &mut Bencher) { fn u256_add(b: &mut Bencher) {

View File

@ -28,7 +28,7 @@ extern crate ethcore_util;
use test::Bencher; use test::Bencher;
use std::str::FromStr; use std::str::FromStr;
use ethcore_util::rlp::*; use ethcore_util::rlp::*;
use ethcore_util::numbers::U256; use ethcore_util::U256;
#[bench] #[bench]
fn bench_stream_u64_value(b: &mut Bencher) { fn bench_stream_u64_value(b: &mut Bencher) {

View File

@ -36,21 +36,19 @@ lazy_static! {
static ref SECP256K1: Secp256k1 = Secp256k1::new(); static ref SECP256K1: Secp256k1 = Secp256k1::new();
} }
impl Signature { /// Create a new signature from the R, S and V componenets.
/// Create a new signature from the R, S and V componenets. pub fn signature_from_rsv(r: &H256, s: &H256, v: u8) -> Signature {
pub fn from_rsv(r: &H256, s: &H256, v: u8) -> Signature {
let mut ret: Signature = Signature::new(); let mut ret: Signature = Signature::new();
(&mut ret[0..32]).copy_from_slice(r); (&mut ret[0..32]).copy_from_slice(r);
(&mut ret[32..64]).copy_from_slice(s); (&mut ret[32..64]).copy_from_slice(s);
ret[64] = v; ret[64] = v;
ret ret
} }
/// Convert transaction to R, S and V components. /// Convert transaction to R, S and V components.
pub fn to_rsv(&self) -> (U256, U256, u8) { pub fn signature_to_rsv(s: &Signature) -> (U256, U256, u8) {
(U256::from(&self.as_slice()[0..32]), U256::from(&self.as_slice()[32..64]), self[64]) (U256::from(&s.as_slice()[0..32]), U256::from(&s.as_slice()[32..64]), s[64])
}
} }
#[derive(Debug)] #[derive(Debug)]
@ -206,10 +204,10 @@ pub mod ec {
signature.clone_from_slice(&data); signature.clone_from_slice(&data);
signature[64] = rec_id.to_i32() as u8; signature[64] = rec_id.to_i32() as u8;
let (_, s, v) = signature.to_rsv(); let (_, s, v) = signature_to_rsv(&signature);
let secp256k1n = U256::from_str("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141").unwrap(); let secp256k1n = U256::from_str("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141").unwrap();
if !is_low_s(&s) { if !is_low_s(&s) {
signature = super::Signature::from_rsv(&H256::from_slice(&signature[0..32]), &H256::from(secp256k1n - s), v ^ 1); signature = super::signature_from_rsv(&H256::from_slice(&signature[0..32]), &H256::from(secp256k1n - s), v ^ 1);
} }
Ok(signature) Ok(signature)
} }

View File

@ -1,21 +0,0 @@
// Copyright 2015, 2016 Ethcore (UK) Ltd.
// This file is part of Parity.
// Parity 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.
// Parity 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 Parity. If not, see <http://www.gnu.org/licenses/>.
//! Calculates heapsize of util types.
use hash::*;

View File

@ -139,7 +139,6 @@ pub mod triehash;
pub mod trie; pub mod trie;
pub mod nibbleslice; pub mod nibbleslice;
pub mod nibblevec; pub mod nibblevec;
mod heapsizeof;
pub mod semantic_version; pub mod semantic_version;
pub mod io; pub mod io;
pub mod network; pub mod network;
@ -171,6 +170,7 @@ pub use timer::*;
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use std::str::FromStr; use std::str::FromStr;
use {U256, H256, Uint};
#[test] #[test]
fn u256_multi_muls() { fn u256_multi_muls() {