From 53868efb4dda01a76088bb142479ee2c7cecca37 Mon Sep 17 00:00:00 2001 From: debris Date: Thu, 14 Jan 2016 01:18:44 +0100 Subject: [PATCH] transact substracts tx_gas --- src/executive.rs | 7 +++++-- src/tests/state.rs | 4 +++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/executive.rs b/src/executive.rs index ea135194f..dbccd7924 100644 --- a/src/executive.rs +++ b/src/executive.rs @@ -135,13 +135,16 @@ impl<'a> Executive<'a> { let mut substate = Substate::new(); let backup = self.state.clone(); + let schedule = self.engine.schedule(self.info); + let init_gas = t.gas - U256::from(schedule.tx_gas); + let res = match t.action() { &Action::Create => { let params = ActionParams { address: contract_address(&sender, &nonce), sender: sender.clone(), origin: sender.clone(), - gas: t.gas, + gas: init_gas, gas_price: t.gas_price, value: t.value, code: t.data.clone(), @@ -154,7 +157,7 @@ impl<'a> Executive<'a> { address: address.clone(), sender: sender.clone(), origin: sender.clone(), - gas: t.gas, + gas: init_gas, gas_price: t.gas_price, value: t.value, code: self.state.code(address).unwrap_or(vec![]), diff --git a/src/tests/state.rs b/src/tests/state.rs index 18c23e528..09339a056 100644 --- a/src/tests/state.rs +++ b/src/tests/state.rs @@ -53,9 +53,11 @@ fn do_json_test(json_data: &[u8]) -> Vec { let mut s = State::new_temp(); s.populate_from(pre); - Executive::new(&mut s, &env, engine.deref()).transact(&t).unwrap(); + let e = Executive::new(&mut s, &env, engine.deref()).transact(&t).unwrap(); + println!("executed: {:?}", e); let our_post = s.to_pod_map(); + s.commit(); if fail_unless(s.root() == &post_state_root) { println!("FAILED {}. Diff:\n{}", name, pod_map_diff(&post, &our_post)); }