add new TestNet transaction issuing
This commit is contained in:
		
							parent
							
								
									7eac946fdb
								
							
						
					
					
						commit
						faa9c7fb1b
					
				@ -22,6 +22,8 @@ use ethcore::tests::helpers::*;
 | 
			
		||||
use ethcore::header::BlockNumber;
 | 
			
		||||
use ethcore::spec::Spec;
 | 
			
		||||
use ethcore::snapshot::SnapshotService;
 | 
			
		||||
use ethcore::transaction::{Transaction, SignedTransaction, Action};
 | 
			
		||||
use ethkey::{Random, Generator};
 | 
			
		||||
use sync_io::SyncIo;
 | 
			
		||||
use chain::ChainSync;
 | 
			
		||||
use ::SyncConfig;
 | 
			
		||||
@ -92,6 +94,19 @@ pub struct TestPacket {
 | 
			
		||||
	pub recipient: PeerId,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
pub fn random_transaction() -> SignedTransaction {
 | 
			
		||||
	let keypair = Random.generate().unwrap();
 | 
			
		||||
	Transaction {
 | 
			
		||||
		action: Action::Create,
 | 
			
		||||
		value: U256::zero(),
 | 
			
		||||
		data: "3331600055".from_hex().unwrap(),
 | 
			
		||||
		gas: U256::from(100_000),
 | 
			
		||||
		gas_price: U256::zero(),
 | 
			
		||||
		nonce: U256::zero(),
 | 
			
		||||
	}.sign(keypair.secret())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub struct TestPeer {
 | 
			
		||||
	pub chain: Arc<Client>,
 | 
			
		||||
	pub snapshot_service: Arc<TestSnapshotService>,
 | 
			
		||||
@ -99,6 +114,16 @@ pub struct TestPeer {
 | 
			
		||||
	pub queue: VecDeque<TestPacket>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl TestPeer {
 | 
			
		||||
	pub fn issue_tx(&self, transaction: SignedTransaction) {
 | 
			
		||||
		self.chain.import_own_transaction(transaction);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	pub fn issue_rand_tx(&self) {
 | 
			
		||||
		self.issue_tx(random_transaction())
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub struct TestNet {
 | 
			
		||||
	pub peers: Vec<TestPeer>,
 | 
			
		||||
	pub started: bool,
 | 
			
		||||
@ -130,9 +155,7 @@ impl TestNet {
 | 
			
		||||
		net
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	pub fn new_with_spec_file<R, S>(n: usize, get_spec: &S) -> TestNet where
 | 
			
		||||
		R: Read + Clone,
 | 
			
		||||
		S: Fn()->Spec {
 | 
			
		||||
	pub fn new_with_spec<S>(n: usize, get_spec: &S) -> TestNet where S: Fn()->Spec {
 | 
			
		||||
		let mut net = TestNet {
 | 
			
		||||
			peers: Vec::new(),
 | 
			
		||||
			started: false,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user