eth, rpc: standardize the chain sync progress counters
This commit is contained in:
@ -55,7 +55,6 @@ var (
|
||||
"admin_exportChain": (*adminApi).ExportChain,
|
||||
"admin_importChain": (*adminApi).ImportChain,
|
||||
"admin_verbosity": (*adminApi).Verbosity,
|
||||
"admin_chainSyncStatus": (*adminApi).ChainSyncStatus,
|
||||
"admin_setSolc": (*adminApi).SetSolc,
|
||||
"admin_datadir": (*adminApi).DataDir,
|
||||
"admin_startRPC": (*adminApi).StartRPC,
|
||||
@ -232,17 +231,6 @@ func (self *adminApi) Verbosity(req *shared.Request) (interface{}, error) {
|
||||
return true, nil
|
||||
}
|
||||
|
||||
func (self *adminApi) ChainSyncStatus(req *shared.Request) (interface{}, error) {
|
||||
pending, cached, importing, estimate := self.ethereum.Downloader().Stats()
|
||||
|
||||
return map[string]interface{}{
|
||||
"blocksAvailable": pending,
|
||||
"blocksWaitingForImport": cached,
|
||||
"importing": importing,
|
||||
"estimate": estimate.String(),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (self *adminApi) SetSolc(req *shared.Request) (interface{}, error) {
|
||||
args := new(SetSolcArgs)
|
||||
if err := self.coder.Decode(req.Params, &args); err != nil {
|
||||
|
@ -143,10 +143,6 @@ web3._extend({
|
||||
new web3._extend.Property({
|
||||
name: 'datadir',
|
||||
getter: 'admin_datadir'
|
||||
}),
|
||||
new web3._extend.Property({
|
||||
name: 'chainSyncStatus',
|
||||
getter: 'admin_chainSyncStatus'
|
||||
})
|
||||
]
|
||||
});
|
||||
|
@ -55,6 +55,7 @@ var (
|
||||
"eth_protocolVersion": (*ethApi).ProtocolVersion,
|
||||
"eth_coinbase": (*ethApi).Coinbase,
|
||||
"eth_mining": (*ethApi).IsMining,
|
||||
"eth_syncing": (*ethApi).IsSyncing,
|
||||
"eth_gasPrice": (*ethApi).GasPrice,
|
||||
"eth_getStorage": (*ethApi).GetStorage,
|
||||
"eth_storageAt": (*ethApi).GetStorage,
|
||||
@ -166,6 +167,20 @@ func (self *ethApi) IsMining(req *shared.Request) (interface{}, error) {
|
||||
return self.xeth.IsMining(), nil
|
||||
}
|
||||
|
||||
func (self *ethApi) IsSyncing(req *shared.Request) (interface{}, error) {
|
||||
current := self.ethereum.ChainManager().CurrentBlock().NumberU64()
|
||||
origin, height := self.ethereum.Downloader().Boundaries()
|
||||
|
||||
if current < height {
|
||||
return map[string]interface{}{
|
||||
"startingBlock": origin,
|
||||
"currentBlock": current,
|
||||
"highestBlock": height,
|
||||
}, nil
|
||||
}
|
||||
return false, nil
|
||||
}
|
||||
|
||||
func (self *ethApi) GasPrice(req *shared.Request) (interface{}, error) {
|
||||
return newHexNum(self.xeth.DefaultGasPrice().Bytes()), nil
|
||||
}
|
||||
|
@ -42,6 +42,10 @@ web3._extend({
|
||||
new web3._extend.Property({
|
||||
name: 'pendingTransactions',
|
||||
getter: 'eth_pendingTransactions'
|
||||
}),
|
||||
new web3._extend.Property({
|
||||
name: 'syncing',
|
||||
getter: 'eth_syncing'
|
||||
})
|
||||
]
|
||||
});
|
||||
|
@ -32,7 +32,6 @@ var (
|
||||
AutoCompletion = map[string][]string{
|
||||
"admin": []string{
|
||||
"addPeer",
|
||||
"chainSyncStatus",
|
||||
"datadir",
|
||||
"exportChain",
|
||||
"getContractInfo",
|
||||
@ -99,6 +98,7 @@ var (
|
||||
"sendRawTransaction",
|
||||
"sendTransaction",
|
||||
"sign",
|
||||
"syncing",
|
||||
},
|
||||
"miner": []string{
|
||||
"hashrate",
|
||||
|
Reference in New Issue
Block a user