Skip to content
This repository has been archived by the owner on Nov 6, 2020. It is now read-only.

Transactions hashes missing in trace_replayBlockTransactions method result #8725 #8883

Merged
merged 5 commits into from
Jul 10, 2018

Conversation

shamardy
Copy link
Contributor

@shamardy shamardy commented Jun 13, 2018

closes #8725

@parity-cla-bot
Copy link

It looks like @shamardy hasn't signed our Contributor License Agreement, yet.

The purpose of a CLA is to ensure that the guardian of a project's outputs has the necessary ownership or grants of rights over all contributions to allow them to distribute under the chosen licence.
Wikipedia

You can read and sign our full Contributor License Agreement at the following URL: https://cla.parity.io

Once you've signed, please reply to this thread with [clabot:check] to prove it.

Many thanks,

Parity Technologies CLA Bot

@shamardy
Copy link
Contributor Author

[clabot:check]

@parity-cla-bot
Copy link

It looks like @shamardy signed our Contributor License Agreement. 👍

Many thanks,

Parity Technologies CLA Bot

@5chdn 5chdn added A0-pleasereview 🤓 Pull request needs code review. M6-rpcapi 📣 RPC API. labels Jun 13, 2018
@5chdn 5chdn added this to the 1.12 milestone Jun 13, 2018
debris
debris previously requested changes Jun 13, 2018
Copy link
Collaborator

@debris debris left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution. I believe that if add transaction_hash, it should belong to struct Executed, not StateDiff.

Regarding jsonrpc and output json, it should be placed next to stateDiff, not inside it

@sorpaas what do you think?

@@ -195,20 +195,19 @@ impl From<account_diff::AccountDiff> for AccountDiff {
}
}

#[derive(Debug)]
#[derive(Debug, Serialize)]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a breaking change

use account_diff::*;

/// Expression for the delta between two system states. Encoded the
/// delta of every altered account.
#[derive(Debug, PartialEq, Eq, Clone)]
pub struct StateDiff {
/// Raw diff key-value
pub raw: BTreeMap<Address, AccountDiff>
pub raw: BTreeMap<Address, AccountDiff>,
pub transaction_hash: H256
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

transaction_hash is not a part of a StateDiff and should not be a property of a struct StateDiff

@debris debris added A4-gotissues 💥 Pull request is reviewed and has significant issues which must be addressed. and removed A0-pleasereview 🤓 Pull request needs code review. labels Jun 13, 2018
@sorpaas
Copy link
Collaborator

sorpaas commented Jun 13, 2018

@debris Yes. I think we should only change RPC types.

@shamardy Maybe we can consider to add an additional Option field in TraceResults representing the transaction hash (https://github.com/paritytech/parity/blob/master/rpc/src/v1/types/trace.rs#L610). When converting from Executed (https://github.com/paritytech/parity/blob/master/rpc/src/v1/types/trace.rs#L623), the transaction hash may not always be available (because we can replay a raw call) so it can be set to None. Then in replayTransaction (https://github.com/paritytech/parity/blob/master/rpc/src/v1/impls/traces.rs#L161) and replayBlockTransaction (https://github.com/paritytech/parity/blob/master/rpc/src/v1/impls/traces.rs#L167), manually set that field to the actual transaction hash. You can get the block transaction hashes via client.block(id).transaction_hashes().

Or another idea might be to change replay_block_transactions in client (https://github.com/paritytech/parity/blob/master/ethcore/src/client/client.rs#L1552) to return an iterator of tuple of transaction hash and Executed. In that way there's no need to fetch transaction hashes again.

@anyluck

This comment has been minimized.

@shamardy
Copy link
Contributor Author

@debris I implemented transaction_hash through struct Executed

@@ -1240,6 +1241,8 @@ impl Client {

let mut ret = Executive::new(state, env_info, machine).transact_virtual(transaction, options)?;

ret.transaction_hash = if hash_trace { Some(transaction.hash()) } else { None };
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tbh, I don't know what to do with this. I generally don't like mutating structures like this. Making one field optional and then overwriting it in a different function is not idiomatic.

Unfortunately, it's not a new pattern and the same thing is done with ret.state_diff few lines below :/

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know what can be done with this since it depends on if the user wants to trace transaction hashes or not.
Another way can be implementing it the same way but inside replay_block_transactions but I thought implementing this inside the same function that state_diff is implemented would look better.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe I can create a function that returns transaction hash inside the implementation of the Executed Struct like this:

impl Executed { pub fn transaction_hash(transaction: &SignedTransaction) -> Option<H256> { ........................... } }

then inside the do_virtual_call function I would set transaction_hash with this:
if hash_trace { Some(ret.transaction_hash(transaction) };

what do you think @debris

@vs77bb
Copy link

vs77bb commented Jun 18, 2018

Hi @debris I believe @shamardy might be waiting on your reply here. Hope you're doing well!

@5chdn 5chdn added A0-pleasereview 🤓 Pull request needs code review. A3-inprogress ⏳ Pull request is in progress. No review needed at this stage. and removed A4-gotissues 💥 Pull request is reviewed and has significant issues which must be addressed. A3-inprogress ⏳ Pull request is in progress. No review needed at this stage. labels Jun 20, 2018
@5chdn
Copy link
Contributor

5chdn commented Jun 22, 2018

@sorpaas @debris could you respond to @shamardy here?

@sorpaas
Copy link
Collaborator

sorpaas commented Jun 22, 2018

My opinion on this is still that we should only change RPC types. The issue with adding transactionHash to ethcore::CallAnalytics type is that this "tracing" option doesn't have other uses (or allow users to set it) for callers other than replayBlockTransactions. Plus, SignedTransaction can be fake signed in do_virtual_call which, in those cases, renders the "transaction hash tracing" invalid there (and it may break some of our previous assumptions).

@shamardy Would you mind to take a look at #8883 (comment)? We can directly fetch transaction hashes in the RPC call function, or if you want, return Iterator<Item = (H256, Executed)>> in ethcore::Client::replay_block_transactions would also be an idea. Or any other way you like to avoid changing non-RPC types. :)

@sorpaas sorpaas added A4-gotissues 💥 Pull request is reviewed and has significant issues which must be addressed. and removed A0-pleasereview 🤓 Pull request needs code review. labels Jun 22, 2018
@shamardy
Copy link
Contributor Author

@sorpaas please check updates. Thanks.

@5chdn 5chdn added A0-pleasereview 🤓 Pull request needs code review. and removed A4-gotissues 💥 Pull request is reviewed and has significant issues which must be addressed. labels Jun 27, 2018
@@ -1541,15 +1541,15 @@ impl EngineInfo for Client {
}

impl BlockChainClient for Client {
fn replay(&self, id: TransactionId, analytics: CallAnalytics) -> Result<Executed, CallError> {
fn replay(&self, id: TransactionId, analytics: CallAnalytics) -> Result<(Option<H256>, Executed), CallError> {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this Option? Isn't replay_block_transactions always return Some(tx_hash)?

let address = self.transaction_address(id).ok_or(CallError::TransactionNotFound)?;
let block = BlockId::Hash(address.block_hash);

const PROOF: &'static str = "The transaction address contains a valid index within block; qed";
Ok(self.replay_block_transactions(block, analytics)?.nth(address.index).expect(PROOF))
}

fn replay_block_transactions(&self, block: BlockId, analytics: CallAnalytics) -> Result<Box<Iterator<Item = Executed>>, CallError> {
fn replay_block_transactions(&self, block: BlockId, analytics: CallAnalytics) -> Result<Box<Iterator<Item = (Option<H256>,Executed)>>, CallError> {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing whitespace before Executed.

let t = SignedTransaction::new(t).expect(PROOF);
let machine = engine.machine();
let x = Self::do_virtual_call(machine, &env_info, &mut state, &t, analytics).expect(EXECUTE_PROOF);
env_info.gas_used = env_info.gas_used + x.gas_used;
x
(Some(tx_hash),x)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing whitespace before x.

@@ -607,12 +607,12 @@ impl EngineInfo for TestBlockChainClient {
}

impl BlockChainClient for TestBlockChainClient {
fn replay(&self, _id: TransactionId, _analytics: CallAnalytics) -> Result<Executed, CallError> {
self.execution_result.read().clone().unwrap()
fn replay(&self, _id: TransactionId, _analytics: CallAnalytics) -> Result<(Option<H256>,Executed), CallError> {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing whitespace for this and several cases below.

fn replay(&self, _id: TransactionId, _analytics: CallAnalytics) -> Result<Executed, CallError> {
self.execution_result.read().clone().unwrap()
fn replay(&self, _id: TransactionId, _analytics: CallAnalytics) -> Result<(Option<H256>,Executed), CallError> {
Ok((None,self.execution_result.read().clone().unwrap()?))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we fetch the transaction hash from TransactionId?

fn replay_block_transactions(&self, _block: BlockId, _analytics: CallAnalytics) -> Result<Box<Iterator<Item = Executed>>, CallError> {
Ok(Box::new(self.execution_result.read().clone().unwrap().into_iter()))
fn replay_block_transactions(&self, _block: BlockId, _analytics: CallAnalytics) -> Result<Box<Iterator<Item = (Option<H256>,Executed)>>, CallError> {
Ok(Box::new(None.into_iter().zip(self.execution_result.read().clone().unwrap().into_iter())))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above. Block info are available in TestBlockChainClient, so I think it may be better to fetch that available info.

@@ -631,6 +632,36 @@ impl From<Executed> for TraceResults {
}
}

#[derive(Debug, Serialize)]
/// A diff of some chunk of memory.
pub struct TraceResultsWithTransHash {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use full name: TraceResultsWithTransactionHash.

#[serde(rename="stateDiff")]
pub state_diff: Option<StateDiff>,
/// The transaction Hash.
#[serde(rename="TransactionHash")]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The usual json conversion is transactionHash.

pub state_diff: Option<StateDiff>,
/// The transaction Hash.
#[serde(rename="TransactionHash")]
pub trans_hash: Option<H256>,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be changed to full name. And why is it Option? I think if we're using this type then the transaction hash should always be available, otherwise we'd rather use TraceResults?

@@ -22,6 +22,7 @@ use ethcore::trace as et;
use ethcore::state_diff;
use ethcore::account_diff;
use ethcore::client::Executed;
use ethereum_types::H256 as ethH256;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We usually have Rust type with first letter to be capped.

@shamardy
Copy link
Contributor Author

@sorpaas please check last update. Thanks.

@5chdn
Copy link
Contributor

5chdn commented Jun 30, 2018

Please rebase on latest master if possible, this will fix the CI issue.

commit 1f85076
Author: shamardy <shamardy@yahoo.com>
Date:   Sat Jun 30 03:40:12 2018 +0200

    update

commit 63363cc
Author: shamardy <shamardy@yahoo.com>
Date:   Sat Jun 30 03:36:25 2018 +0200

    Update

commit e05cadd
Author: shamardy <shamardy@yahoo.com>
Date:   Fri Jun 29 10:04:34 2018 +0200

    Test

commit b0be065
Author: shamardy <shamardy@yahoo.com>
Date:   Fri Jun 29 09:19:57 2018 +0200

    test_client edit

commit 949205c
Author: shamardy <shamardy@yahoo.com>
Date:   Fri Jun 29 05:14:53 2018 +0200

    Edit Test

commit 7cd44ee
Author: shamardy <shamardy@yahoo.com>
Date:   Fri Jun 29 04:25:22 2018 +0200

    Updates

commit e90de71
Author: shamardy <shamardy@yahoo.com>
Date:   Wed Jun 27 13:53:15 2018 +0200

    Test

commit 12a7638
Author: shamardy <shamardy@yahoo.com>
Date:   Wed Jun 27 11:43:39 2018 +0200

    Edited Tests

commit 6c21e6d
Merge: 87c4c74 9550cf7
Author: shamardy <shamardy@yahoo.com>
Date:   Wed Jun 27 10:31:21 2018 +0200

    Merge branch 'Issue#8725' of https://github.com/shamardy/parity into Issue#8725

commit 87c4c74
Author: shamardy <shamardy@yahoo.com>
Date:   Wed Jun 27 10:31:13 2018 +0200

    Avoided Changing non-RPC Types

commit 9550cf7
Author: shamardy <39480341+shamardy@users.noreply.github.com>
Date:   Wed Jun 27 10:29:03 2018 +0200

    Update traces.rs

commit 3e0b0ef
Author: shamardy <39480341+shamardy@users.noreply.github.com>
Date:   Wed Jun 27 10:27:44 2018 +0200

    Update trace.rs

commit 5078d67
Author: shamardy <39480341+shamardy@users.noreply.github.com>
Date:   Wed Jun 27 10:26:08 2018 +0200

    Update traces.rs

commit 28f5ba1
Author: shamardy <39480341+shamardy@users.noreply.github.com>
Date:   Wed Jun 27 10:24:04 2018 +0200

    Update parity.rs

commit 3b86b98
Author: shamardy <39480341+shamardy@users.noreply.github.com>
Date:   Wed Jun 27 10:23:33 2018 +0200

    Update eth.rs

commit bcad5a4
Author: shamardy <39480341+shamardy@users.noreply.github.com>
Date:   Wed Jun 27 10:21:43 2018 +0200

    Update call_analytics.rs

commit e9029e0
Author: shamardy <39480341+shamardy@users.noreply.github.com>
Date:   Wed Jun 27 10:20:56 2018 +0200

    Update transaction.rs

commit 0dacc81
Author: shamardy <39480341+shamardy@users.noreply.github.com>
Date:   Wed Jun 27 10:20:01 2018 +0200

    Update executive.rs

commit 3921d4e
Author: shamardy <39480341+shamardy@users.noreply.github.com>
Date:   Wed Jun 27 10:18:39 2018 +0200

    Update executed.rs

commit 8416df6
Author: shamardy <39480341+shamardy@users.noreply.github.com>
Date:   Wed Jun 27 10:17:34 2018 +0200

    Update client.rs

commit cf0b4dd
Merge: 23bfa78 36e05e5
Author: shamardy <shamardy@yahoo.com>
Date:   Sun Jun 24 04:54:04 2018 +0200

    Merge branch 'Issue#8725' of https://github.com/shamardy/parity into Issue#8725

commit 23bfa78
Author: shamardy <shamardy@yahoo.com>
Date:   Sun Jun 24 04:53:50 2018 +0200

    Undo

commit 36e05e5
Merge: 2f6e1ef 0afc748
Author: shamardy <shamardy@yahoo.com>
Date:   Sun Jun 24 04:44:33 2018 +0200

    Merge branch 'Issue#8725' of https://github.com/shamardy/parity into Issue#8725

commit 2f6e1ef
Author: shamardy <shamardy@yahoo.com>
Date:   Sun Jun 24 04:44:22 2018 +0200

    Another rpc test output with ("transactionHash":null)

commit 0afc748
Author: shamardy <shamardy@yahoo.com>
Date:   Thu Jun 14 07:18:45 2018 +0200

    Another rpc test output with ("transactionHash":null)

commit 138fbac
Author: shamardy <shamardy@yahoo.com>
Date:   Thu Jun 14 06:30:41 2018 +0200

    Edited some rpc tests output with ("transactionHash":null)

commit 8c129a6
Author: shamardy <39480341+shamardy@users.noreply.github.com>
Date:   Thu Jun 14 05:48:39 2018 +0200

    Update traces.rs

commit 52c17f6
Author: shamardy <39480341+shamardy@users.noreply.github.com>
Date:   Thu Jun 14 05:47:29 2018 +0200

    Update parity.rs

commit d39303a
Author: shamardy <39480341+shamardy@users.noreply.github.com>
Date:   Thu Jun 14 05:46:25 2018 +0200

    Update eth.rs

commit 49be84b
Author: shamardy <39480341+shamardy@users.noreply.github.com>
Date:   Thu Jun 14 05:40:56 2018 +0200

    Update trace.rs

commit 4fc8013
Merge: d34ba23 5442104
Author: shamardy <shamardy@yahoo.com>
Date:   Thu Jun 14 05:12:21 2018 +0200

    Merge branch 'Issue#8725' of https://github.com/shamardy/parity into Issue#8725

commit 5442104
Author: shamardy <39480341+shamardy@users.noreply.github.com>
Date:   Thu Jun 14 05:04:51 2018 +0200

    Update trace.rs

commit 2b2524a
Author: shamardy <39480341+shamardy@users.noreply.github.com>
Date:   Thu Jun 14 05:01:47 2018 +0200

    Update state_diff.rs

commit 2bf9982
Author: shamardy <39480341+shamardy@users.noreply.github.com>
Date:   Thu Jun 14 05:00:50 2018 +0200

    Update transaction.rs

commit da696ea
Author: shamardy <39480341+shamardy@users.noreply.github.com>
Date:   Thu Jun 14 05:00:13 2018 +0200

    Update mod.rs

commit cfc194c
Author: shamardy <39480341+shamardy@users.noreply.github.com>
Date:   Thu Jun 14 04:59:18 2018 +0200

    Update pod_state.rs

commit 3b31568
Author: shamardy <39480341+shamardy@users.noreply.github.com>
Date:   Thu Jun 14 04:57:37 2018 +0200

    Update client.rs

commit d34ba23
Author: shamardy <shamardy@yahoo.com>
Date:   Thu Jun 14 04:53:50 2018 +0200

    RPC Only

commit 8b5c4f1
Merge: 7444916 291b4a0
Author: shamardy <shamardy@yahoo.com>
Date:   Thu Jun 14 02:55:14 2018 +0200

    Merge branch 'Issue#8725' of https://github.com/shamardy/parity into Issue#8725

commit 7444916
Author: shamardy <shamardy@yahoo.com>
Date:   Thu Jun 14 02:27:13 2018 +0200

    Issue#8725

    Transactions hashes missing in trace_replayBlockTransactions method result openethereum#8725

commit 291b4a0
Author: shamardy <shamardy@yahoo.com>
Date:   Thu Jun 14 01:18:18 2018 +0200

    Edited to make changes to RPC types only

    To make a transactions hash trace with "trace_replayBlockTransactions" add "transactionHash" to parameters

commit 9d082be
Author: shamardy <shamardy@yahoo.com>
Date:   Wed Jun 13 09:15:56 2018 +0200

    Issue#8725

    Transactions hashes missing in trace_replayBlockTransactions method result openethereum#8725
Copy link
Collaborator

@sorpaas sorpaas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. Only minor grumbles.

fn replay_block_transactions(&self, _block: BlockId, _analytics: CallAnalytics) -> Result<Box<Iterator<Item = Executed>>, CallError> {
Ok(Box::new(self.execution_result.read().clone().unwrap().into_iter()))
fn replay_block_transactions(&self, _block: BlockId, _analytics: CallAnalytics) -> Result<Box<Iterator<Item = (H256, Executed)>>, CallError> {
Ok(Box::new(self.traces.read().clone().unwrap().into_iter().map(|t| t.transaction_hash.unwrap_or(H256::new())).zip(self.execution_result.read().clone().unwrap().into_iter())))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The self.execution_result param is always set by self.set_execution_result function. We've never set the actual transaction hashes or modify self.traces when calling that function. So it always returns H256::new regardless. The unwrap_or can be removed.

@5chdn 5chdn added A6-mustntgrumble 💦 Pull request has areas for improvement. The author need not address them before merging. and removed A0-pleasereview 🤓 Pull request needs code review. labels Jul 2, 2018
@5chdn 5chdn requested a review from debris July 2, 2018 12:38
fn replay_block_transactions(&self, _block: BlockId, _analytics: CallAnalytics) -> Result<Box<Iterator<Item = Executed>>, CallError> {
Ok(Box::new(self.execution_result.read().clone().unwrap().into_iter()))
fn replay_block_transactions(&self, _block: BlockId, _analytics: CallAnalytics) -> Result<Box<Iterator<Item = (H256, Executed)>>, CallError> {
Ok(Box::new(self.traces.read().clone().unwrap().into_iter().map(|t| t.transaction_hash.unwrap()).zip(self.execution_result.read().clone().unwrap().into_iter())))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shamardy Sorry if I wasn't clear -- I think this should be changed not to use self.traces (but just return H256::new), because when we query self.execution_result in test, self.traces is never available -- self.execution_result is only set by self.set_execution_result and we only have a few appearance our code.

Copy link
Collaborator

@sorpaas sorpaas Jul 2, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The above code will cause testing run of replayBlockTransactions to always return empty vector -- definitely not something we want. (It looks like we're missing a few tests there, though.)

@sorpaas sorpaas added A5-grumble 🔥 Pull request has minor issues that must be addressed before merging. and removed A6-mustntgrumble 💦 Pull request has areas for improvement. The author need not address them before merging. labels Jul 2, 2018
@shamardy
Copy link
Contributor Author

shamardy commented Jul 3, 2018

@sorpaas in rpc\src\v1\tests\mocked\traces.rs the self.traces is set in line 38:

	*client.traces.write() = Some(vec![LocalizedTrace {
		action: Action::Call(Call {
			from: 0xf.into(),
			to: 0x10.into(),
			value: 0x1.into(),
			gas: 0x100.into(),
			input: vec![1, 2, 3],
			call_type: CallType::Call,
		}),
		result: Res::None,
		subtraces: 0,
		trace_address: vec![0],
		transaction_number: Some(0),
		transaction_hash: Some(5.into()),
		block_number: 10,
		block_hash: 10.into(),
	}]);

in line 236 there is a test for replay_block_transactions:

#[test]
fn rpc_trace_replay_block_transactions() {
	let tester = io();

	let request = r#"{"jsonrpc":"2.0","method":"trace_replayBlockTransactions","params":["0x10", ["trace", "stateDiff", "vmTrace"]],"id":1}"#;
	let response = r#"{"jsonrpc":"2.0","result":[{"output":"0x010203","stateDiff":null,"trace":[],"transactionHash":"0x0000000000000000000000000000000000000000000000000000000000000005","vmTrace":null}],"id":1}"#;

	assert_eq!(tester.io.handle_request_sync(request), Some(response.to_owned()));
}

in the response the transactionHash should be 5 like its set in the *client.traces.write() when I used H256::new in the last commit it returned a transactionHash of 0 maybe I should revert to the previous commit that uses self.traces where the output was right. what do you think?

@shamardy
Copy link
Contributor Author

shamardy commented Jul 3, 2018

also if thats the case should I revert to the one which uses unwrap_or(H256::new()) or just unwrap(). is there a difference?

@sorpaas
Copy link
Collaborator

sorpaas commented Jul 3, 2018

@shamardy Ah you're right. Sorry it's my mistake.

Then I think your original one is correct -- we should revert to use unwrap_or(H256::new()).

@sorpaas sorpaas added A8-looksgood 🦄 Pull request is reviewed well. and removed A5-grumble 🔥 Pull request has minor issues that must be addressed before merging. labels Jul 3, 2018
@shamardy
Copy link
Contributor Author

shamardy commented Jul 4, 2018

@debris can you check the last update please. Thanks.

@5chdn
Copy link
Contributor

5chdn commented Jul 5, 2018

Needs a second review, anyone?

@shamardy
Copy link
Contributor Author

shamardy commented Jul 8, 2018

any update here?

@5chdn
Copy link
Contributor

5chdn commented Jul 9, 2018

@debris can you check the last update, please. Thanks.

or anyone?

Copy link
Contributor

@ascjones ascjones left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ascjones ascjones merged commit 526c61e into openethereum:master Jul 10, 2018
@shamardy shamardy deleted the Issue#8725 branch July 10, 2018 23:35
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A8-looksgood 🦄 Pull request is reviewed well. M6-rpcapi 📣 RPC API.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Transactions hashes missing in trace_replayBlockTransactions method result
8 participants