aboutsummaryrefslogtreecommitdiffstats
path: root/core/tx_pool.go
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2016-10-20 19:36:29 +0800
committerJeffrey Wilcke <jeffrey@ethereum.org>2016-11-13 17:44:04 +0800
commit445feaeef58bd89a113743dccf6fd5df55cde6fa (patch)
tree6c692a0989800f005a94bde2d372fcbe1f7630a1 /core/tx_pool.go
parent932d973e36ff0d41a6005b93d2d4ff1b4430fb04 (diff)
downloadgo-tangerine-445feaeef58bd89a113743dccf6fd5df55cde6fa.tar
go-tangerine-445feaeef58bd89a113743dccf6fd5df55cde6fa.tar.gz
go-tangerine-445feaeef58bd89a113743dccf6fd5df55cde6fa.tar.bz2
go-tangerine-445feaeef58bd89a113743dccf6fd5df55cde6fa.tar.lz
go-tangerine-445feaeef58bd89a113743dccf6fd5df55cde6fa.tar.xz
go-tangerine-445feaeef58bd89a113743dccf6fd5df55cde6fa.tar.zst
go-tangerine-445feaeef58bd89a113743dccf6fd5df55cde6fa.zip
core, core/state, trie: EIP158, reprice & skip empty account write
This commit implements EIP158 part 1, 2, 3 & 4 1. If an account is empty it's no longer written to the trie. An empty account is defined as (balance=0, nonce=0, storage=0, code=0). 2. Delete an empty account if it's touched 3. An empty account is redefined as either non-existent or empty. 4. Zero value calls and zero value suicides no longer consume the 25k reation costs. params: moved core/config to params Signed-off-by: Jeffrey Wilcke <jeffrey@ethereum.org>
Diffstat (limited to 'core/tx_pool.go')
-rw-r--r--core/tx_pool.go5
1 files changed, 3 insertions, 2 deletions
diff --git a/core/tx_pool.go b/core/tx_pool.go
index 419d9945e..f1e5f0bdd 100644
--- a/core/tx_pool.go
+++ b/core/tx_pool.go
@@ -31,6 +31,7 @@ import (
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/logger/glog"
"github.com/ethereum/go-ethereum/metrics"
+ "github.com/ethereum/go-ethereum/params"
"gopkg.in/karalabe/cookiejar.v2/collections/prque"
)
@@ -83,7 +84,7 @@ type stateFn func() (*state.StateDB, error)
// current state) and future transactions. Transactions move between those
// two states over time as they are received and processed.
type TxPool struct {
- config *ChainConfig
+ config *params.ChainConfig
currentState stateFn // The state function which will allow us to do some pre checks
pendingState *state.ManagedState
gasLimit func() *big.Int // The current gas limit function callback
@@ -104,7 +105,7 @@ type TxPool struct {
homestead bool
}
-func NewTxPool(config *ChainConfig, eventMux *event.TypeMux, currentStateFn stateFn, gasLimitFn func() *big.Int) *TxPool {
+func NewTxPool(config *params.ChainConfig, eventMux *event.TypeMux, currentStateFn stateFn, gasLimitFn func() *big.Int) *TxPool {
pool := &TxPool{
config: config,
pending: make(map[common.Address]*txList),