diff options
author | Felix Lange <fjl@twurst.com> | 2016-08-18 02:59:59 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-18 02:59:59 +0800 |
commit | 475521dd747070372f84c2b0ac202e14216dc0e0 (patch) | |
tree | e97fb7892b21c503a7661578df0ff5a1f6d8e29c /miner/miner.go | |
parent | 3369783e0a3e0c06388cf59fddfd799811381a2b (diff) | |
parent | 3c09c5f12d21258865677cf565bb9d53a8098d3a (diff) | |
download | go-tangerine-475521dd747070372f84c2b0ac202e14216dc0e0.tar go-tangerine-475521dd747070372f84c2b0ac202e14216dc0e0.tar.gz go-tangerine-475521dd747070372f84c2b0ac202e14216dc0e0.tar.bz2 go-tangerine-475521dd747070372f84c2b0ac202e14216dc0e0.tar.lz go-tangerine-475521dd747070372f84c2b0ac202e14216dc0e0.tar.xz go-tangerine-475521dd747070372f84c2b0ac202e14216dc0e0.tar.zst go-tangerine-475521dd747070372f84c2b0ac202e14216dc0e0.zip |
Merge pull request #2909 from fjl/account-manager-cleanup
all: clean up tech debt left behind by the API split
Diffstat (limited to 'miner/miner.go')
-rw-r--r-- | miner/miner.go | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/miner/miner.go b/miner/miner.go index 7cc25cdf7..c16cbe6ae 100644 --- a/miner/miner.go +++ b/miner/miner.go @@ -22,11 +22,13 @@ import ( "math/big" "sync/atomic" + "github.com/ethereum/go-ethereum/accounts" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core" "github.com/ethereum/go-ethereum/core/state" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/eth/downloader" + "github.com/ethereum/go-ethereum/ethdb" "github.com/ethereum/go-ethereum/event" "github.com/ethereum/go-ethereum/logger" "github.com/ethereum/go-ethereum/logger/glog" @@ -34,6 +36,15 @@ import ( "github.com/ethereum/go-ethereum/pow" ) +// Backend wraps all methods required for mining. +type Backend interface { + AccountManager() *accounts.Manager + BlockChain() *core.BlockChain + TxPool() *core.TxPool + ChainDb() ethdb.Database +} + +// Miner creates blocks and searches for proof-of-work values. type Miner struct { mux *event.TypeMux @@ -44,15 +55,21 @@ type Miner struct { threads int coinbase common.Address mining int32 - eth core.Backend + eth Backend pow pow.PoW canStart int32 // can start indicates whether we can start the mining operation shouldStart int32 // should start indicates whether we should start after sync } -func New(eth core.Backend, config *core.ChainConfig, mux *event.TypeMux, pow pow.PoW) *Miner { - miner := &Miner{eth: eth, mux: mux, pow: pow, worker: newWorker(config, common.Address{}, eth), canStart: 1} +func New(eth Backend, config *core.ChainConfig, mux *event.TypeMux, pow pow.PoW) *Miner { + miner := &Miner{ + eth: eth, + mux: mux, + pow: pow, + worker: newWorker(config, common.Address{}, eth, mux), + canStart: 1, + } go miner.update() return miner |