diff options
author | Wei-Ning Huang <w@cobinhood.com> | 2018-10-12 13:54:32 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@dexon.org> | 2019-04-09 21:32:49 +0800 |
commit | 139b719ec39da205841c857b865a340f370bafb2 (patch) | |
tree | fceed7f6e1b595f64c1458decc0ab8ea8ca0b5c8 /dex/backend.go | |
parent | 7df00d48a6c8ad89de221c5d9a3606e2b39d55a3 (diff) | |
download | go-tangerine-139b719ec39da205841c857b865a340f370bafb2.tar go-tangerine-139b719ec39da205841c857b865a340f370bafb2.tar.gz go-tangerine-139b719ec39da205841c857b865a340f370bafb2.tar.bz2 go-tangerine-139b719ec39da205841c857b865a340f370bafb2.tar.lz go-tangerine-139b719ec39da205841c857b865a340f370bafb2.tar.xz go-tangerine-139b719ec39da205841c857b865a340f370bafb2.tar.zst go-tangerine-139b719ec39da205841c857b865a340f370bafb2.zip |
dex: governance: implement governance interface
Diffstat (limited to 'dex/backend.go')
-rw-r--r-- | dex/backend.go | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/dex/backend.go b/dex/backend.go index 3b7fde400..8213f582e 100644 --- a/dex/backend.go +++ b/dex/backend.go @@ -31,6 +31,8 @@ import ( "github.com/dexon-foundation/dexon/core/bloombits" "github.com/dexon-foundation/dexon/core/rawdb" "github.com/dexon-foundation/dexon/core/vm" + "github.com/dexon-foundation/dexon/dex/gasprice" + "github.com/dexon-foundation/dexon/eth/downloader" "github.com/dexon-foundation/dexon/ethdb" "github.com/dexon-foundation/dexon/event" "github.com/dexon-foundation/dexon/internal/ethapi" @@ -64,6 +66,8 @@ type Dexon struct { bloomRequests chan chan *bloombits.Retrieval // Channel receiving bloom data retrieval requests bloomIndexer *core.ChainIndexer // Bloom indexer operating during block imports + APIBackend *DexAPIBackend + // Dexon consensus. app *DexconApp governance *DexconGovernance @@ -81,7 +85,6 @@ func New(ctx *node.ServiceContext, config *Config) (*Dexon, error) { if err != nil { panic(err) } - gov := NewDexconGovernance() network := NewDexconNetwork() // TODO(w): replace this with node key. @@ -116,7 +119,6 @@ func New(ctx *node.ServiceContext, config *Config) (*Dexon, error) { shutdownChan: make(chan bool), networkID: config.NetworkId, bloomRequests: make(chan chan *bloombits.Retrieval), - governance: gov, network: network, blockdb: db, engine: dexcon.New(¶ms.DexconConfig{}), @@ -145,9 +147,16 @@ func New(ctx *node.ServiceContext, config *Config) (*Dexon, error) { } dex.txPool = core.NewTxPool(config.TxPool, dex.chainConfig, dex.blockchain) - dex.app = NewDexconApp(dex.txPool, dex.blockchain, gov, chainDb, config, vmConfig) + dex.APIBackend = &DexAPIBackend{dexon, nil} + gpoParams := config.GPO + //if gpoParams.Default == nil { + // gpoParams.Default = config.MinerGasPrice + //} + dex.APIBackend.gpo = gasprice.NewOracle(dex.APIBackend, gpoParams) - dex.consensus = dexCore.NewConsensus(dex.app, gov, db, network, privKey) + dex.governance = NewDexconGovernance(dex.APIBackend) + dex.app = NewDexconApp(dex.txPool, dex.blockchain, dex.governance, chainDb, config, vmConfig) + dex.consensus = dexCore.NewConsensus(dex.app, dex.governance, db, network, privKey) return dex, nil } @@ -180,10 +189,11 @@ func CreateDB(ctx *node.ServiceContext, config *Config, name string) (ethdb.Data return db, nil } -func (d *Dexon) AccountManager() *accounts.Manager { return d.accountManager } -func (d *Dexon) BlockChain() *core.BlockChain { return d.blockchain } -func (d *Dexon) TxPool() *core.TxPool { return d.txPool } -func (d *Dexon) DexVersion() int { return int(d.protocolManager.SubProtocols[0].Version) } -func (d *Dexon) EventMux() *event.TypeMux { return d.eventMux } -func (d *Dexon) Engine() consensus.Engine { return d.engine } -func (d *Dexon) ChainDb() ethdb.Database { return d.chainDb } +func (d *Dexon) AccountManager() *accounts.Manager { return d.accountManager } +func (d *Dexon) BlockChain() *core.BlockChain { return d.blockchain } +func (d *Dexon) TxPool() *core.TxPool { return d.txPool } +func (d *Dexon) DexVersion() int { return int(d.protocolManager.SubProtocols[0].Version) } +func (d *Dexon) EventMux() *event.TypeMux { return d.eventMux } +func (d *Dexon) Engine() consensus.Engine { return d.engine } +func (d *Dexon) ChainDb() ethdb.Database { return d.chainDb } +func (d *Dexon) Downloader() *downloader.Downloader { return d.protocolManager.downloader } |