aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBas van Kervel <bas@ethdev.com>2015-06-10 17:29:52 +0800
committerBas van Kervel <basvankervel@gmail.com>2015-06-11 20:01:41 +0800
commitbd38428f33b127e9c60d26127695e50c55798fcd (patch)
tree9bb838822fc3d1b28775f57223a30a243d4df9f2
parent87b62f75a7b9c15c17f3352f1b50ad88966e7070 (diff)
downloadgo-tangerine-bd38428f33b127e9c60d26127695e50c55798fcd.tar.gz
go-tangerine-bd38428f33b127e9c60d26127695e50c55798fcd.tar.zst
go-tangerine-bd38428f33b127e9c60d26127695e50c55798fcd.zip
cleanup of javascript API
-rw-r--r--cmd/console/js.go3
-rw-r--r--rpc/api/admin.go25
-rw-r--r--rpc/api/admin_args.go14
-rw-r--r--rpc/api/admin_js.go29
-rw-r--r--rpc/api/miner_args.go17
-rw-r--r--rpc/api/miner_js.go7
-rw-r--r--rpc/api/net.go4
-rw-r--r--rpc/api/net_js.go24
-rw-r--r--rpc/api/personal_args.go45
-rw-r--r--rpc/api/personal_js.go12
10 files changed, 91 insertions, 89 deletions
diff --git a/cmd/console/js.go b/cmd/console/js.go
index 4229a95a2..76695cabd 100644
--- a/cmd/console/js.go
+++ b/cmd/console/js.go
@@ -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()
diff --git a/rpc/api/admin.go b/rpc/api/admin.go
index c37463604..6b89942b2 100644
--- a/rpc/api/admin.go
+++ b/rpc/api/admin.go
@@ -25,14 +25,15 @@ var (
AdminMapping = map[string]adminhandler{
// "admin_startRPC": (*adminApi).StartRPC,
// "admin_stopRPC": (*adminApi).StopRPC,
- "admin_addPeer": (*adminApi).AddPeer,
- "admin_peers": (*adminApi).Peers,
- "admin_nodeInfo": (*adminApi).NodeInfo,
- "admin_exportChain": (*adminApi).ExportChain,
- "admin_importChain": (*adminApi).ImportChain,
- "admin_verbosity": (*adminApi).Verbosity,
- "admin_syncStatus": (*adminApi).SyncStatus,
- "admin_setSolc": (*adminApi).SetSolc,
+ "admin_addPeer": (*adminApi).AddPeer,
+ "admin_peers": (*adminApi).Peers,
+ "admin_nodeInfo": (*adminApi).NodeInfo,
+ "admin_exportChain": (*adminApi).ExportChain,
+ "admin_importChain": (*adminApi).ImportChain,
+ "admin_verbosity": (*adminApi).Verbosity,
+ "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) {
diff --git a/rpc/api/admin_args.go b/rpc/api/admin_args.go
index 9c0cbdcb6..56bb57e20 100644
--- a/rpc/api/admin_args.go
+++ b/rpc/api/admin_args.go
@@ -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())
}
diff --git a/rpc/api/admin_js.go b/rpc/api/admin_js.go
index 6255a6c7b..c3e713c67 100644
--- a/rpc/api/admin_js.go
+++ b/rpc/api/admin_js.go
@@ -13,13 +13,6 @@ web3._extend({
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',
params: 1,
@@ -41,13 +34,6 @@ web3._extend({
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',
params: 1,
@@ -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; }
})
]
});
diff --git a/rpc/api/miner_args.go b/rpc/api/miner_args.go
index 6b3d16d48..7b0560c16 100644
--- a/rpc/api/miner_args.go
+++ b/rpc/api/miner_args.go
@@ -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,13 +64,16 @@ 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
- return nil
+ if pricestr, ok := obj[0].(string); ok {
+ args.Price = pricestr
+ return nil
+ }
+
+ return shared.NewInvalidTypeError("Price", "not a string")
}
type MakeDAGArgs struct {
diff --git a/rpc/api/miner_js.go b/rpc/api/miner_js.go
index bcf92f6a7..6290368da 100644
--- a/rpc/api/miner_js.go
+++ b/rpc/api/miner_js.go
@@ -20,13 +20,6 @@ web3._extend({
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',
params: 1,
diff --git a/rpc/api/net.go b/rpc/api/net.go
index efc400785..6f5d55f12 100644
--- a/rpc/api/net.go
+++ b/rpc/api/net.go
@@ -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
}
diff --git a/rpc/api/net_js.go b/rpc/api/net_js.go
index 75f6c89f3..1677d9fa6 100644
--- a/rpc/api/net_js.go
+++ b/rpc/api/net_js.go
@@ -13,25 +13,11 @@ web3._extend({
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
})
]
});
diff --git a/rpc/api/personal_args.go b/rpc/api/personal_args.go
index b41fc06e7..b3e683638 100644
--- a/rpc/api/personal_args.go
+++ b/rpc/api/personal_args.go
@@ -16,13 +16,16 @@ 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
- return nil
+ if passhrase, ok := obj[0].(string); ok {
+ args.Passphrase = passhrase
+ return nil
+ }
+
+ return shared.NewInvalidTypeError("passhrase", "not a string")
}
type DeleteAccountArgs struct {
@@ -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
}
diff --git a/rpc/api/personal_js.go b/rpc/api/personal_js.go
index f9fa60e78..ddd47f6a4 100644
--- a/rpc/api/personal_js.go
+++ b/rpc/api/personal_js.go
@@ -6,13 +6,6 @@ web3._extend({
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',
params: 1,
@@ -29,6 +22,11 @@ web3._extend({
],
properties:
[
+ new web3._extend.Property({
+ name: 'accounts',
+ getter: 'personal_listAccounts',
+ outputFormatter: function(obj) { return obj; }
+ })
]
});
`