cleanup of javascript API
This commit is contained in:
parent
87b62f75a7
commit
bd38428f33
@ -32,12 +32,12 @@ import (
|
||||
"github.com/ethereum/go-ethereum/common/docserver"
|
||||
re "github.com/ethereum/go-ethereum/jsre"
|
||||
"github.com/ethereum/go-ethereum/rpc"
|
||||
"github.com/ethereum/go-ethereum/rpc/api"
|
||||
"github.com/ethereum/go-ethereum/rpc/codec"
|
||||
"github.com/ethereum/go-ethereum/rpc/comms"
|
||||
"github.com/ethereum/go-ethereum/rpc/shared"
|
||||
"github.com/peterh/liner"
|
||||
"github.com/robertkrimen/otto"
|
||||
"github.com/ethereum/go-ethereum/rpc/api"
|
||||
)
|
||||
|
||||
type prompter interface {
|
||||
@ -235,6 +235,7 @@ func (self *jsre) suportedApis(ipcpath string) ([]string, error) {
|
||||
// show summary of current geth instance
|
||||
func (self *jsre) welcome(ipcpath string) {
|
||||
self.re.Eval(`console.log('instance: ' + web3.version.client);`)
|
||||
self.re.Eval(`console.log(' datadir: ' + admin.datadir);`)
|
||||
self.re.Eval(`console.log("coinbase: " + eth.coinbase);`)
|
||||
self.re.Eval(`var lastBlockTimestamp = 1000 * eth.getBlock(eth.blockNumber).timestamp`)
|
||||
self.re.Eval(`console.log("at block: " + eth.blockNumber + " (" + new Date(lastBlockTimestamp).toLocaleDateString()
|
||||
|
@ -31,8 +31,9 @@ var (
|
||||
"admin_exportChain": (*adminApi).ExportChain,
|
||||
"admin_importChain": (*adminApi).ImportChain,
|
||||
"admin_verbosity": (*adminApi).Verbosity,
|
||||
"admin_syncStatus": (*adminApi).SyncStatus,
|
||||
"admin_chainSyncStatus": (*adminApi).ChainSyncStatus,
|
||||
"admin_setSolc": (*adminApi).SetSolc,
|
||||
"admin_datadir": (*adminApi).DataDir,
|
||||
}
|
||||
)
|
||||
|
||||
@ -129,6 +130,10 @@ func (self *adminApi) NodeInfo(req *shared.Request) (interface{}, error) {
|
||||
return self.ethereum.NodeInfo(), nil
|
||||
}
|
||||
|
||||
func (self *adminApi) DataDir(req *shared.Request) (interface{}, error) {
|
||||
return self.ethereum.DataDir, nil
|
||||
}
|
||||
|
||||
func hasAllBlocks(chain *core.ChainManager, bs []*types.Block) bool {
|
||||
for _, b := range bs {
|
||||
if !chain.HasBlock(b.Hash()) {
|
||||
@ -209,9 +214,9 @@ func (self *adminApi) Verbosity(req *shared.Request) (interface{}, error) {
|
||||
return true, nil
|
||||
}
|
||||
|
||||
func (self *adminApi) SyncStatus(req *shared.Request) (interface{}, error) {
|
||||
func (self *adminApi) ChainSyncStatus(req *shared.Request) (interface{}, error) {
|
||||
pending, cached := self.ethereum.Downloader().Stats()
|
||||
return map[string]interface{}{"available": pending, "waitingForImport": cached}, nil
|
||||
return map[string]interface{}{"blocksAvailable": pending, "blocksWaitingForImport": cached}, nil
|
||||
}
|
||||
|
||||
func (self *adminApi) SetSolc(req *shared.Request) (interface{}, error) {
|
||||
|
@ -3,8 +3,6 @@ package api
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"math/big"
|
||||
|
||||
"github.com/ethereum/go-ethereum/rpc/shared"
|
||||
)
|
||||
|
||||
@ -68,16 +66,8 @@ func (args *VerbosityArgs) UnmarshalJSON(b []byte) (err error) {
|
||||
return shared.NewDecodeParamError("Expected enode as argument")
|
||||
}
|
||||
|
||||
if levelint, ok := obj[0].(int); ok {
|
||||
args.Level = levelint
|
||||
} else if levelstr, ok := obj[0].(string); ok {
|
||||
if !ok {
|
||||
return shared.NewInvalidTypeError("level", "not a string")
|
||||
}
|
||||
level, success := new(big.Int).SetString(levelstr, 0)
|
||||
if !success {
|
||||
return shared.NewDecodeParamError("Unable to parse verbosity level")
|
||||
}
|
||||
level, err := numString(obj[0])
|
||||
if err == nil {
|
||||
args.Level = int(level.Int64())
|
||||
}
|
||||
|
||||
|
@ -12,13 +12,6 @@ web3._extend({
|
||||
inputFormatter: [web3._extend.utils.formatInputString],
|
||||
outputFormatter: web3._extend.formatters.formatOutputBool
|
||||
}),
|
||||
new web3._extend.Method({
|
||||
name: 'peers',
|
||||
call: 'admin_peers',
|
||||
params: 0,
|
||||
inputFormatter: [],
|
||||
outputFormatter: function(obj) { return obj; }
|
||||
}),
|
||||
new web3._extend.Method({
|
||||
name: 'exportChain',
|
||||
call: 'admin_exportChain',
|
||||
@ -40,13 +33,6 @@ web3._extend({
|
||||
inputFormatter: [web3._extend.utils.formatInputInt],
|
||||
outputFormatter: web3._extend.formatters.formatOutputBool
|
||||
}),
|
||||
new web3._extend.Method({
|
||||
name: 'syncStatus',
|
||||
call: 'admin_syncStatus',
|
||||
params: 1,
|
||||
inputFormatter: [web3._extend.utils.formatInputInt],
|
||||
outputFormatter: function(obj) { return obj; }
|
||||
}),
|
||||
new web3._extend.Method({
|
||||
name: 'setSolc',
|
||||
call: 'admin_setSolc',
|
||||
@ -61,6 +47,21 @@ web3._extend({
|
||||
name: 'nodeInfo',
|
||||
getter: 'admin_nodeInfo',
|
||||
outputFormatter: web3._extend.formatters.formatOutputString
|
||||
}),
|
||||
new web3._extend.Property({
|
||||
name: 'peers',
|
||||
getter: 'admin_peers',
|
||||
outputFormatter: function(obj) { return obj; }
|
||||
}),
|
||||
new web3._extend.Property({
|
||||
name: 'datadir',
|
||||
getter: 'admin_datadir',
|
||||
outputFormatter: web3._extend.formatters.formatOutputString
|
||||
}),
|
||||
new web3._extend.Property({
|
||||
name: 'chainSyncStatus',
|
||||
getter: 'admin_chainSyncStatus',
|
||||
outputFormatter: function(obj) { return obj; }
|
||||
})
|
||||
]
|
||||
});
|
||||
|
@ -41,6 +41,10 @@ func (args *SetExtraArgs) UnmarshalJSON(b []byte) (err error) {
|
||||
return shared.NewDecodeParamError(err.Error())
|
||||
}
|
||||
|
||||
if len(obj) < 1 {
|
||||
return shared.NewInsufficientParamsError(len(obj), 1)
|
||||
}
|
||||
|
||||
extrastr, ok := obj[0].(string)
|
||||
if !ok {
|
||||
return shared.NewInvalidTypeError("Price", "not a string")
|
||||
@ -60,15 +64,18 @@ func (args *GasPriceArgs) UnmarshalJSON(b []byte) (err error) {
|
||||
return shared.NewDecodeParamError(err.Error())
|
||||
}
|
||||
|
||||
pricestr, ok := obj[0].(string)
|
||||
if !ok {
|
||||
return shared.NewInvalidTypeError("Price", "not a string")
|
||||
if len(obj) < 1 {
|
||||
return shared.NewInsufficientParamsError(len(obj), 1)
|
||||
}
|
||||
args.Price = pricestr
|
||||
|
||||
if pricestr, ok := obj[0].(string); ok {
|
||||
args.Price = pricestr
|
||||
return nil
|
||||
}
|
||||
|
||||
return shared.NewInvalidTypeError("Price", "not a string")
|
||||
}
|
||||
|
||||
type MakeDAGArgs struct {
|
||||
BlockNumber int64
|
||||
}
|
||||
|
@ -19,13 +19,6 @@ web3._extend({
|
||||
inputFormatter: [web3._extend.formatters.formatInputInt],
|
||||
outputFormatter: web3._extend.formatters.formatOutputBool
|
||||
}),
|
||||
new web3._extend.Method({
|
||||
name: 'getHashrate',
|
||||
call: 'miner_hashrate',
|
||||
params: 0,
|
||||
inputFormatter: [],
|
||||
outputFormatter: web3._extend.utils.toDecimal
|
||||
}),
|
||||
new web3._extend.Method({
|
||||
name: 'setExtra',
|
||||
call: 'miner_setExtra',
|
||||
|
@ -10,7 +10,7 @@ import (
|
||||
var (
|
||||
// mapping between methods and handlers
|
||||
netMapping = map[string]nethandler{
|
||||
"net_id": (*netApi).NetworkVersion,
|
||||
"net_version": (*netApi).Version,
|
||||
"net_peerCount": (*netApi).PeerCount,
|
||||
"net_listening": (*netApi).IsListening,
|
||||
"net_peers": (*netApi).Peers,
|
||||
@ -63,7 +63,7 @@ func (self *netApi) Name() string {
|
||||
}
|
||||
|
||||
// Network version
|
||||
func (self *netApi) NetworkVersion(req *shared.Request) (interface{}, error) {
|
||||
func (self *netApi) Version(req *shared.Request) (interface{}, error) {
|
||||
return self.xeth.NetworkVersion(), nil
|
||||
}
|
||||
|
||||
|
@ -12,26 +12,12 @@ web3._extend({
|
||||
inputFormatter: [web3._extend.utils.formatInputString],
|
||||
outputFormatter: web3._extend.formatters.formatOutputBool
|
||||
}),
|
||||
new web3._extend.Method({
|
||||
name: 'id',
|
||||
call: 'net_id',
|
||||
params: 0,
|
||||
inputFormatter: [],
|
||||
outputFormatter: web3._extend.formatters.formatOutputString
|
||||
}),
|
||||
new web3._extend.Method({
|
||||
name: 'getPeerCount',
|
||||
call: 'net_peerCount',
|
||||
params: 0,
|
||||
inputFormatter: [],
|
||||
outputFormatter: web3._extend.formatters.formatOutputString
|
||||
}),
|
||||
new web3._extend.Method({
|
||||
name: 'peers',
|
||||
call: 'net_peers',
|
||||
params: 0,
|
||||
inputFormatter: [],
|
||||
outputFormatter: function(obj) { return obj; }
|
||||
})
|
||||
],
|
||||
properties:
|
||||
@ -45,6 +31,16 @@ web3._extend({
|
||||
name: 'peerCount',
|
||||
getter: 'net_peerCount',
|
||||
outputFormatter: web3._extend.utils.toDecimal
|
||||
}),
|
||||
new web3._extend.Property({
|
||||
name: 'peers',
|
||||
getter: 'net_peers',
|
||||
outputFormatter: function(obj) { return obj; }
|
||||
}),
|
||||
new web3._extend.Property({
|
||||
name: 'version',
|
||||
getter: 'net_version',
|
||||
outputFormatter: web3._extend.formatters.formatOutputString
|
||||
})
|
||||
]
|
||||
});
|
||||
|
@ -16,15 +16,18 @@ func (args *NewAccountArgs) UnmarshalJSON(b []byte) (err error) {
|
||||
return shared.NewDecodeParamError(err.Error())
|
||||
}
|
||||
|
||||
passhrase, ok := obj[0].(string)
|
||||
if !ok {
|
||||
return shared.NewInvalidTypeError("passhrase", "not a string")
|
||||
if len(obj) < 1 {
|
||||
return shared.NewInsufficientParamsError(len(obj), 1)
|
||||
}
|
||||
args.Passphrase = passhrase
|
||||
|
||||
if passhrase, ok := obj[0].(string); ok {
|
||||
args.Passphrase = passhrase
|
||||
return nil
|
||||
}
|
||||
|
||||
return shared.NewInvalidTypeError("passhrase", "not a string")
|
||||
}
|
||||
|
||||
type DeleteAccountArgs struct {
|
||||
Address string
|
||||
Passphrase string
|
||||
@ -36,17 +39,21 @@ func (args *DeleteAccountArgs) UnmarshalJSON(b []byte) (err error) {
|
||||
return shared.NewDecodeParamError(err.Error())
|
||||
}
|
||||
|
||||
addr, ok := obj[0].(string)
|
||||
if !ok {
|
||||
if len(obj) < 2 {
|
||||
return shared.NewInsufficientParamsError(len(obj), 2)
|
||||
}
|
||||
|
||||
if addr, ok := obj[0].(string); ok {
|
||||
args.Address = addr
|
||||
} else {
|
||||
return shared.NewInvalidTypeError("address", "not a string")
|
||||
}
|
||||
args.Address = addr
|
||||
|
||||
passhrase, ok := obj[1].(string)
|
||||
if !ok {
|
||||
if passhrase, ok := obj[1].(string); ok {
|
||||
args.Passphrase = passhrase
|
||||
} else {
|
||||
return shared.NewInvalidTypeError("passhrase", "not a string")
|
||||
}
|
||||
args.Passphrase = passhrase
|
||||
|
||||
return nil
|
||||
}
|
||||
@ -65,17 +72,21 @@ func (args *UnlockAccountArgs) UnmarshalJSON(b []byte) (err error) {
|
||||
|
||||
args.Duration = -1
|
||||
|
||||
addrstr, ok := obj[0].(string)
|
||||
if !ok {
|
||||
if len(obj) < 2 {
|
||||
return shared.NewInsufficientParamsError(len(obj), 2)
|
||||
}
|
||||
|
||||
if addrstr, ok := obj[0].(string); ok {
|
||||
args.Address = addrstr
|
||||
} else {
|
||||
return shared.NewInvalidTypeError("address", "not a string")
|
||||
}
|
||||
args.Address = addrstr
|
||||
|
||||
passphrasestr, ok := obj[1].(string)
|
||||
if !ok {
|
||||
if passphrasestr, ok := obj[1].(string); ok {
|
||||
args.Passphrase = passphrasestr
|
||||
} else {
|
||||
return shared.NewInvalidTypeError("passphrase", "not a string")
|
||||
}
|
||||
args.Passphrase = passphrasestr
|
||||
|
||||
return nil
|
||||
}
|
||||
|
@ -5,13 +5,6 @@ web3._extend({
|
||||
property: 'personal',
|
||||
methods:
|
||||
[
|
||||
new web3._extend.Method({
|
||||
name: 'listAccounts',
|
||||
call: 'personal_listAccounts',
|
||||
params: 0,
|
||||
inputFormatter: [],
|
||||
outputFormatter: function(obj) { return obj; }
|
||||
}),
|
||||
new web3._extend.Method({
|
||||
name: 'newAccount',
|
||||
call: 'personal_newAccount',
|
||||
@ -29,6 +22,11 @@ web3._extend({
|
||||
],
|
||||
properties:
|
||||
[
|
||||
new web3._extend.Property({
|
||||
name: 'accounts',
|
||||
getter: 'personal_listAccounts',
|
||||
outputFormatter: function(obj) { return obj; }
|
||||
})
|
||||
]
|
||||
});
|
||||
`
|
||||
|
Loading…
Reference in New Issue
Block a user