Implement interface changes in ethereum
This commit is contained in:
parent
2567ae69b0
commit
6a346f8f49
@ -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 {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user