From 0de9d2d5b03efd08aab7cdadabe29c8f036cb9d7 Mon Sep 17 00:00:00 2001 From: wulfraem Date: Thu, 21 Jun 2018 09:09:56 +0200 Subject: [PATCH 1/2] default to 'permitted' when validating block transactions with a configured 'transactionPermissionContract', that does (not) exist --- ethcore/src/tx_filter.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ethcore/src/tx_filter.rs b/ethcore/src/tx_filter.rs index 585dc7e3d38..f5f2740e6de 100644 --- a/ethcore/src/tx_filter.rs +++ b/ethcore/src/tx_filter.rs @@ -85,6 +85,12 @@ impl TransactionFilter { } let contract_address = self.contract_address; + if !client.code_hash(&contract_address, BlockId::Hash(*parent_hash)).map_or(false, |c| c != KECCAK_EMPTY) { + trace!(target: "tx_filter", "transaction permission contract does not exist at current block, permitting transaction"); + return true; + } else { + trace!(target: "tx_filter", "transaction permission contract exists at current block, checking permissions"); + } let contract_version = contract_version_cache.get_mut(parent_hash).and_then(|v| *v).or_else(|| { self.contract.functions() .contract_version() From c3c1e475e3f4dcffdbb0c81e52972b44cb0f1a1d Mon Sep 17 00:00:00 2001 From: wulfraem Date: Thu, 21 Jun 2018 15:45:50 +0200 Subject: [PATCH 2/2] remove excessive logs --- ethcore/src/tx_filter.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ethcore/src/tx_filter.rs b/ethcore/src/tx_filter.rs index 585dc7e3d38..4c5b31d556f 100644 --- a/ethcore/src/tx_filter.rs +++ b/ethcore/src/tx_filter.rs @@ -85,6 +85,11 @@ impl TransactionFilter { } let contract_address = self.contract_address; + if !client.code_hash(&contract_address, BlockId::Hash(*parent_hash)).map_or(false, |c| c != KECCAK_EMPTY) { + // transaction permission contract does not exist at current block, permit transaction + return true; + } + let contract_version = contract_version_cache.get_mut(parent_hash).and_then(|v| *v).or_else(|| { self.contract.functions() .contract_version()