2015-11-24 22:21:15 +01:00
|
|
|
#[macro_use] extern crate log;
|
2015-11-26 21:34:49 +01:00
|
|
|
extern crate ethcore_util;
|
|
|
|
|
|
|
|
use ethcore_util::hash::*;
|
2015-11-27 13:18:35 +01:00
|
|
|
use ethcore_util::uint::*;
|
2015-11-26 21:34:49 +01:00
|
|
|
|
|
|
|
pub type Bytes = Vec<u8>;
|
2015-12-05 17:32:36 +01:00
|
|
|
pub type LogBloom = H2048;
|
2015-11-26 21:34:49 +01:00
|
|
|
|
2015-11-27 13:18:35 +01:00
|
|
|
pub static ZERO_ADDRESS: Address = Address([0x00; 20]);
|
2015-12-05 17:32:36 +01:00
|
|
|
pub static ZERO_H256: H256 = H256([0x00; 32]);
|
|
|
|
pub static ZERO_LOGBLOOM: LogBloom = H2048([0x00; 256]);
|
2015-11-26 21:34:49 +01:00
|
|
|
|
|
|
|
#[derive(Debug)]
|
|
|
|
pub struct Header {
|
2015-12-05 17:32:36 +01:00
|
|
|
parent_hash: H256,
|
2015-11-27 13:18:35 +01:00
|
|
|
timestamp: U256,
|
|
|
|
number: U256,
|
2015-11-26 21:34:49 +01:00
|
|
|
author: Address,
|
|
|
|
|
2015-12-05 17:32:36 +01:00
|
|
|
transactions_root: H256,
|
|
|
|
uncles_hash: H256,
|
|
|
|
extra_data_hash: H256,
|
2015-11-26 21:34:49 +01:00
|
|
|
|
2015-12-05 17:32:36 +01:00
|
|
|
state_root: H256,
|
|
|
|
receipts_root: H256,
|
2015-11-26 21:34:49 +01:00
|
|
|
log_bloom: LogBloom,
|
2015-11-27 13:18:35 +01:00
|
|
|
gas_used: U256,
|
|
|
|
gas_limit: U256,
|
2015-11-26 21:34:49 +01:00
|
|
|
|
2015-11-27 13:18:35 +01:00
|
|
|
difficulty: U256,
|
2015-11-26 21:34:49 +01:00
|
|
|
seal: Vec<Bytes>,
|
|
|
|
}
|
|
|
|
|
|
|
|
impl Header {
|
|
|
|
pub fn new() -> Header {
|
|
|
|
Header {
|
2015-12-05 17:32:36 +01:00
|
|
|
parent_hash: ZERO_H256.clone(),
|
|
|
|
timestamp: BAD_U256.clone(),
|
|
|
|
number: ZERO_U256.clone(),
|
|
|
|
author: ZERO_ADDRESS.clone(),
|
|
|
|
|
|
|
|
transactions_root: ZERO_H256.clone(),
|
|
|
|
uncles_hash: ZERO_H256.clone(),
|
|
|
|
extra_data_hash: ZERO_H256.clone(),
|
|
|
|
|
|
|
|
state_root: ZERO_H256.clone(),
|
|
|
|
receipts_root: ZERO_H256.clone(),
|
|
|
|
log_bloom: ZERO_LOGBLOOM.clone(),
|
|
|
|
gas_used: ZERO_U256.clone(),
|
|
|
|
gas_limit: ZERO_U256.clone(),
|
|
|
|
|
|
|
|
difficulty: ZERO_U256.clone(),
|
2015-11-26 21:34:49 +01:00
|
|
|
seal: vec![],
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2015-11-24 22:21:15 +01:00
|
|
|
|
2015-11-27 00:30:33 +01:00
|
|
|
pub struct Transaction {
|
|
|
|
pub to: Address,
|
2015-11-27 13:18:35 +01:00
|
|
|
pub gas: U256,
|
2015-11-27 00:30:33 +01:00
|
|
|
pub data: Bytes,
|
|
|
|
pub code: Bytes,
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn memorydb() {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2015-11-24 22:21:15 +01:00
|
|
|
/// Silly function to return 69.
|
|
|
|
///
|
|
|
|
/// # Example
|
|
|
|
///
|
|
|
|
/// ```
|
|
|
|
/// assert_eq!(ethcore::sixtynine(), 69);
|
|
|
|
/// ```
|
|
|
|
pub fn sixtynine() -> i32 {
|
|
|
|
debug!("Hello world!");
|
|
|
|
69
|
2015-11-24 21:05:08 +01:00
|
|
|
}
|