|
|
@@ -30,7 +30,6 @@ import (
|
|
|
|
|
|
"github.com/ethereum/go-ethereum/cmd/utils"
|
|
|
"github.com/ethereum/go-ethereum/common"
|
|
|
- "github.com/ethereum/go-ethereum/common/docserver"
|
|
|
"github.com/ethereum/go-ethereum/common/natspec"
|
|
|
"github.com/ethereum/go-ethereum/common/registrar"
|
|
|
"github.com/ethereum/go-ethereum/eth"
|
|
|
@@ -77,8 +76,6 @@ func (r dumbterm) PasswordPrompt(p string) (string, error) {
|
|
|
func (r dumbterm) AppendHistory(string) {}
|
|
|
|
|
|
type jsre struct {
|
|
|
- docRoot string
|
|
|
- ds *docserver.DocServer
|
|
|
re *re.JSRE
|
|
|
ethereum *eth.Ethereum
|
|
|
xeth *xeth.XEth
|
|
|
@@ -153,7 +150,6 @@ func newLightweightJSRE(docRoot string, client comms.EthereumClient, datadir str
|
|
|
js := &jsre{ps1: "> "}
|
|
|
js.wait = make(chan *big.Int)
|
|
|
js.client = client
|
|
|
- js.ds = docserver.New(docRoot)
|
|
|
|
|
|
// update state in separare forever blocks
|
|
|
js.re = re.New(docRoot)
|
|
|
@@ -181,18 +177,17 @@ func newLightweightJSRE(docRoot string, client comms.EthereumClient, datadir str
|
|
|
}
|
|
|
|
|
|
func newJSRE(ethereum *eth.Ethereum, docRoot, corsDomain string, client comms.EthereumClient, interactive bool, f xeth.Frontend) *jsre {
|
|
|
- js := &jsre{ethereum: ethereum, ps1: "> ", docRoot: docRoot}
|
|
|
+ js := &jsre{ethereum: ethereum, ps1: "> "}
|
|
|
// set default cors domain used by startRpc from CLI flag
|
|
|
js.corsDomain = corsDomain
|
|
|
if f == nil {
|
|
|
f = js
|
|
|
}
|
|
|
- js.ds = docserver.New(docRoot)
|
|
|
js.xeth = xeth.New(ethereum, f)
|
|
|
js.wait = js.xeth.UpdateState()
|
|
|
js.client = client
|
|
|
if clt, ok := js.client.(*comms.InProcClient); ok {
|
|
|
- if offeredApis, err := api.ParseApiString(shared.AllApis, codec.JSON, js.xeth, ethereum, docRoot); err == nil {
|
|
|
+ if offeredApis, err := api.ParseApiString(shared.AllApis, codec.JSON, js.xeth, ethereum); err == nil {
|
|
|
clt.Initialize(api.Merge(offeredApis...))
|
|
|
}
|
|
|
}
|
|
|
@@ -248,14 +243,14 @@ func (self *jsre) batch(statement string) {
|
|
|
// show summary of current geth instance
|
|
|
func (self *jsre) welcome() {
|
|
|
self.re.Run(`
|
|
|
- (function () {
|
|
|
- console.log('instance: ' + web3.version.client);
|
|
|
- console.log(' datadir: ' + admin.datadir);
|
|
|
- console.log("coinbase: " + eth.coinbase);
|
|
|
- var ts = 1000 * eth.getBlock(eth.blockNumber).timestamp;
|
|
|
- console.log("at block: " + eth.blockNumber + " (" + new Date(ts) + ")");
|
|
|
- })();
|
|
|
- `)
|
|
|
+ (function () {
|
|
|
+ console.log('instance: ' + web3.version.client);
|
|
|
+ console.log(' datadir: ' + admin.datadir);
|
|
|
+ console.log("coinbase: " + eth.coinbase);
|
|
|
+ var ts = 1000 * eth.getBlock(eth.blockNumber).timestamp;
|
|
|
+ console.log("at block: " + eth.blockNumber + " (" + new Date(ts) + ")");
|
|
|
+ })();
|
|
|
+ `)
|
|
|
if modules, err := self.supportedApis(); err == nil {
|
|
|
loadedModules := make([]string, 0)
|
|
|
for api, version := range modules {
|
|
|
@@ -281,7 +276,7 @@ func (js *jsre) apiBindings(f xeth.Frontend) error {
|
|
|
apiNames = append(apiNames, a)
|
|
|
}
|
|
|
|
|
|
- apiImpl, err := api.ParseApiString(strings.Join(apiNames, ","), codec.JSON, js.xeth, js.ethereum, js.docRoot)
|
|
|
+ apiImpl, err := api.ParseApiString(strings.Join(apiNames, ","), codec.JSON, js.xeth, js.ethereum)
|
|
|
if err != nil {
|
|
|
utils.Fatalf("Unable to determine supported api's: %v", err)
|
|
|
}
|
|
|
@@ -334,7 +329,7 @@ func (js *jsre) apiBindings(f xeth.Frontend) error {
|
|
|
utils.Fatalf("Error setting namespaces: %v", err)
|
|
|
}
|
|
|
|
|
|
- js.re.Run(`var GlobalRegistrar = eth.contract(` + registrar.GlobalRegistrarAbi + `); registrar = GlobalRegistrar.at("` + registrar.GlobalRegistrarAddr + `");`)
|
|
|
+ js.re.Run(`var GlobalRegistrar = eth.contract(` + registrar.GlobalRegistrarAbi + `); registrar = GlobalRegistrar.at("` + registrar.GlobalRegistrarAddr + `");`)
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
@@ -348,7 +343,7 @@ func (self *jsre) AskPassword() (string, bool) {
|
|
|
|
|
|
func (self *jsre) ConfirmTransaction(tx string) bool {
|
|
|
if self.ethereum.NatSpec {
|
|
|
- notice := natspec.GetNotice(self.xeth, tx, self.ds)
|
|
|
+ notice := natspec.GetNotice(self.xeth, tx, self.ethereum.HTTPClient())
|
|
|
fmt.Println(notice)
|
|
|
answer, _ := self.Prompt("Confirm Transaction [y/n]")
|
|
|
return strings.HasPrefix(strings.Trim(answer, " "), "y")
|