Implement interface changes in ethereum

This commit is contained in:
Martin Boehm 2018-03-21 15:47:31 +01:00
parent 2567ae69b0
commit 6a346f8f49

View File

@ -2,7 +2,6 @@ package eth
import ( import (
"blockbook/bchain" "blockbook/bchain"
"blockbook/common"
"context" "context"
"encoding/json" "encoding/json"
"math/big" "math/big"
@ -33,7 +32,6 @@ type EthRPC struct {
Testnet bool Testnet bool
Network string Network string
Mempool *bchain.Mempool Mempool *bchain.Mempool
metrics *common.Metrics
bestHeaderMu sync.Mutex bestHeaderMu sync.Mutex
bestHeader *ethtypes.Header bestHeader *ethtypes.Header
} }
@ -44,7 +42,7 @@ type configuration struct {
} }
// NewEthRPC returns new EthRPC instance. // NewEthRPC returns new EthRPC instance.
func NewEthRPC(config json.RawMessage, pushHandler func(*bchain.MQMessage), metrics *common.Metrics) (bchain.BlockChain, error) { func NewEthRPC(config json.RawMessage, pushHandler func(*bchain.MQMessage)) (bchain.BlockChain, error) {
var err error var err error
var c configuration var c configuration
err = json.Unmarshal(config, &c) err = json.Unmarshal(config, &c)
@ -56,41 +54,43 @@ func NewEthRPC(config json.RawMessage, pushHandler func(*bchain.MQMessage), metr
return nil, err return nil, err
} }
s := &EthRPC{ s := &EthRPC{
client: ec, client: ec,
rpcURL: c.RPCURL, rpcURL: c.RPCURL,
metrics: metrics,
} }
// always create parser // always create parser
s.Parser = &EthParser{} s.Parser = &EthParser{}
s.timeout = time.Duration(c.RPCTimeout) * time.Second s.timeout = time.Duration(c.RPCTimeout) * time.Second
ctx, cancel := context.WithTimeout(context.Background(), s.timeout) return s, nil
}
func (b *EthRPC) Initialize() error {
ctx, cancel := context.WithTimeout(context.Background(), b.timeout)
defer cancel() defer cancel()
id, err := ec.NetworkID(ctx) id, err := b.client.NetworkID(ctx)
if err != nil { if err != nil {
return nil, err return err
} }
// parameters for getInfo request // parameters for getInfo request
switch EthereumNet(id.Uint64()) { switch EthereumNet(id.Uint64()) {
case MainNet: case MainNet:
s.Testnet = false b.Testnet = false
s.Network = "livenet" b.Network = "livenet"
break break
case TestNet: case TestNet:
s.Testnet = true b.Testnet = true
s.Network = "testnet" b.Network = "testnet"
break break
default: default:
return nil, errors.Errorf("Unknown network id %v", id) return errors.Errorf("Unknown network id %v", id)
} }
glog.Info("rpc: block chain ", s.Network) glog.Info("rpc: block chain ", b.Network)
// s.Mempool = bchain.NewMempool(s, metrics) // b.Mempool = bchain.NewMempool(s, metrics)
return nil
return s, nil
} }
func (b *EthRPC) Shutdown() error { func (b *EthRPC) Shutdown() error {