working blockhain sequence generator
This commit is contained in:
		
							parent
							
								
									5818db9d0e
								
							
						
					
					
						commit
						6d69906159
					
				| @ -765,8 +765,8 @@ mod tests { | ||||
| 	} | ||||
| 
 | ||||
| 	#[test] | ||||
| 	fn can_consist_of_random_blocks() { | ||||
| 		let bc = generate_dummy_blockchain(100); | ||||
| 		assert_eq!(bc.best_block_hash(), 0); | ||||
| 	fn can_contain_arbitrary_block_sequence() { | ||||
| 		let bc = generate_dummy_blockchain(50); | ||||
| 		assert_eq!(bc.best_block_number(), 49); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @ -45,6 +45,18 @@ pub fn create_test_block(header: &Header) -> Bytes { | ||||
| 	rlp.out() | ||||
| } | ||||
| 
 | ||||
| fn create_unverifiable_block(order: usize, parent_hash: H256) -> Bytes { | ||||
| 	let mut header = Header::new(); | ||||
| 	header.gas_limit = x!(0); | ||||
| 	header.difficulty = x!(order * 100); | ||||
| 	header.timestamp = (order * 10) as u64; | ||||
| 	header.number = order as u64; | ||||
| 	header.parent_hash = parent_hash; | ||||
| 	header.state_root = H256::from_str("0000000000000000000000000000000000000000000000000000000000000000").unwrap(); | ||||
| 
 | ||||
| 	create_test_block(&header) | ||||
| } | ||||
| 
 | ||||
| pub fn generate_dummy_client(block_number: usize) -> Arc<Client> { | ||||
| 	let dir = RandomTempPath::new(); | ||||
| 
 | ||||
| @ -82,7 +94,14 @@ pub fn generate_dummy_client(block_number: usize) -> Arc<Client> { | ||||
| 
 | ||||
| pub fn generate_dummy_blockchain(block_number: usize) -> BlockChain { | ||||
| 	let temp = RandomTempPath::new(); | ||||
| 	let genesis = "fffffff".from_hex().unwrap(); | ||||
| 	let bc = BlockChain::new(&genesis, temp.as_path()); | ||||
| 	let bc = BlockChain::new( | ||||
| 		&create_unverifiable_block( | ||||
| 			0, | ||||
| 			H256::from_str("0000000000000000000000000000000000000000000000000000000000000000").unwrap()), | ||||
| 		temp.as_path()); | ||||
| 
 | ||||
| 	for block_order in 1..block_number { | ||||
| 		bc.insert_block(&create_unverifiable_block(block_order, bc.best_block_hash())); | ||||
| 	} | ||||
| 	bc | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user