Explorar o código

Updated xeth instances to take extra param for ui.Interface

Please be aware that if any of the instances on xeth.frontend are called
the program will crash due to the default, temporarily, frontend
interface.
obscuren %!s(int64=10) %!d(string=hai) anos
pai
achega
20741a96ac
Modificáronse 6 ficheiros con 5 adicións e 153 borrados
  1. 2 2
      cmd/ethereum/js.go
  2. 0 117
      cmd/mist/ext_app.go
  3. 1 1
      cmd/mist/gui.go
  4. 1 19
      cmd/mist/ui_lib.go
  5. 1 1
      cmd/utils/cmd.go
  6. 0 13
      rpc/api.go

+ 2 - 2
cmd/ethereum/js.go

@@ -46,7 +46,7 @@ func execJsFile(ethereum *eth.Ethereum, filename string) {
 	if err != nil {
 		utils.Fatalf("%v", err)
 	}
-	re := javascript.NewJSRE(xeth.New(ethereum))
+	re := javascript.NewJSRE(xeth.New(ethereum, nil))
 	if _, err := re.Run(string(content)); err != nil {
 		utils.Fatalf("Javascript Error: %v", err)
 	}
@@ -61,7 +61,7 @@ type repl struct {
 }
 
 func runREPL(ethereum *eth.Ethereum) {
-	xeth := xeth.New(ethereum)
+	xeth := xeth.New(ethereum, nil)
 	repl := &repl{
 		re:       javascript.NewJSRE(xeth),
 		xeth:     xeth,

+ 0 - 117
cmd/mist/ext_app.go

@@ -1,117 +0,0 @@
-/*
-	This file is part of go-ethereum
-
-	go-ethereum is free software: you can redistribute it and/or modify
-	it under the terms of the GNU General Public License as published by
-	the Free Software Foundation, either version 3 of the License, or
-	(at your option) any later version.
-
-	go-ethereum is distributed in the hope that it will be useful,
-	but WITHOUT ANY WARRANTY; without even the implied warranty of
-	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-	GNU General Public License for more details.
-
-	You should have received a copy of the GNU General Public License
-	along with go-ethereum.  If not, see <http://www.gnu.org/licenses/>.
-*/
-/**
- * @authors
- * 	Jeffrey Wilcke <i@jev.io>
- */
-package main
-
-import (
-	"github.com/ethereum/go-ethereum/core"
-	"github.com/ethereum/go-ethereum/core/types"
-	"github.com/ethereum/go-ethereum/event"
-	"github.com/ethereum/go-ethereum/xeth"
-	"github.com/obscuren/qml"
-)
-
-type AppContainer interface {
-	Create() error
-	Destroy()
-
-	Window() *qml.Window
-	Engine() *qml.Engine
-
-	NewBlock(*types.Block)
-	NewWatcher(chan bool)
-	Post(string, int)
-}
-
-type ExtApplication struct {
-	*xeth.XEth
-	eth core.Backend
-
-	events          event.Subscription
-	watcherQuitChan chan bool
-
-	filters map[string]*core.Filter
-
-	container AppContainer
-	lib       *UiLib
-}
-
-func NewExtApplication(container AppContainer, lib *UiLib) *ExtApplication {
-	return &ExtApplication{
-		XEth:            xeth.New(lib.eth),
-		eth:             lib.eth,
-		watcherQuitChan: make(chan bool),
-		filters:         make(map[string]*core.Filter),
-		container:       container,
-		lib:             lib,
-	}
-}
-
-func (app *ExtApplication) run() {
-	// Set the "eth" api on to the containers context
-	context := app.container.Engine().Context()
-	context.SetVar("eth", app)
-	context.SetVar("ui", app.lib)
-
-	err := app.container.Create()
-	if err != nil {
-		guilogger.Errorln(err)
-		return
-	}
-
-	// Call the main loop
-	go app.mainLoop()
-
-	app.container.NewWatcher(app.watcherQuitChan)
-
-	win := app.container.Window()
-	win.Show()
-	win.Wait()
-
-	app.stop()
-}
-
-func (app *ExtApplication) stop() {
-	app.events.Unsubscribe()
-
-	// Kill the main loop
-	app.watcherQuitChan <- true
-
-	app.container.Destroy()
-}
-
-func (app *ExtApplication) mainLoop() {
-	for ev := range app.events.Chan() {
-		switch ev := ev.(type) {
-		case core.NewBlockEvent:
-			app.container.NewBlock(ev.Block)
-
-			/* TODO remove
-			case state.Messages:
-				for id, filter := range app.filters {
-					msgs := filter.FilterMessages(ev)
-					if len(msgs) > 0 {
-						app.container.Messages(msgs, id)
-					}
-				}
-			*/
-		}
-	}
-}

+ 1 - 1
cmd/mist/gui.go

@@ -88,7 +88,7 @@ func NewWindow(ethereum *eth.Ethereum, config *ethutil.ConfigManager, session st
 		panic(err)
 	}
 
-	xeth := xeth.New(ethereum)
+	xeth := xeth.New(ethereum, nil)
 	gui := &Gui{eth: ethereum,
 		txDb:          db,
 		xeth:          xeth,

+ 1 - 19
cmd/mist/ui_lib.go

@@ -58,7 +58,7 @@ type UiLib struct {
 }
 
 func NewUiLib(engine *qml.Engine, eth *eth.Ethereum, assetPath string) *UiLib {
-	x := xeth.New(eth)
+	x := xeth.New(eth, nil)
 	lib := &UiLib{XEth: x, engine: engine, eth: eth, assetPath: assetPath, jsEngine: javascript.NewJSRE(x), filterCallbacks: make(map[int][]int)} //, filters: make(map[int]*xeth.JSFilter)}
 	lib.filterManager = filter.NewFilterManager(eth.EventMux())
 	go lib.filterManager.Start()
@@ -91,24 +91,6 @@ func (self *UiLib) EvalJavascriptString(str string) string {
 	return fmt.Sprintf("%v", value)
 }
 
-func (ui *UiLib) OpenQml(path string) {
-	container := NewQmlApplication(path[7:], ui)
-	app := NewExtApplication(container, ui)
-
-	go app.run()
-}
-
-func (ui *UiLib) OpenHtml(path string) {
-	container := NewHtmlApplication(path, ui)
-	app := NewExtApplication(container, ui)
-
-	go app.run()
-}
-
-func (ui *UiLib) OpenBrowser() {
-	ui.OpenHtml("file://" + ui.AssetPath("ext/home.html"))
-}
-
 func (ui *UiLib) Muted(content string) {
 	component, err := ui.engine.LoadFile(ui.AssetPath("qml/muted.qml"))
 	if err != nil {

+ 1 - 1
cmd/utils/cmd.go

@@ -167,7 +167,7 @@ func KeyTasks(keyManager *crypto.KeyManager, KeyRing string, GenAddr bool, Secre
 
 func StartRpc(ethereum *eth.Ethereum, RpcListenAddress string, RpcPort int) {
 	var err error
-	ethereum.RpcServer, err = rpchttp.NewRpcHttpServer(xeth.New(ethereum), RpcListenAddress, RpcPort)
+	ethereum.RpcServer, err = rpchttp.NewRpcHttpServer(xeth.New(ethereum, nil), RpcListenAddress, RpcPort)
 	if err != nil {
 		clilogger.Errorf("Could not start RPC interface (port %v): %v", RpcPort, err)
 	} else {

+ 0 - 13
rpc/api.go

@@ -9,7 +9,6 @@ For each request type, define the following:
 package rpc
 
 import (
-	"fmt"
 	"math/big"
 	"strings"
 	"sync"
@@ -23,7 +22,6 @@ import (
 	"github.com/ethereum/go-ethereum/event"
 	"github.com/ethereum/go-ethereum/event/filter"
 	"github.com/ethereum/go-ethereum/state"
-	"github.com/ethereum/go-ethereum/ui"
 	"github.com/ethereum/go-ethereum/xeth"
 )
 
@@ -721,14 +719,3 @@ func (self *EthereumApi) useState(statedb *state.StateDB) {
 
 	self.eth = self.eth.UseState(statedb)
 }
-
-func t(f ui.Frontend) {
-	// Call the password dialog
-	ret, err := f.Call("PasswordDialog")
-	if err != nil {
-		fmt.Println(err)
-	}
-	// Get the first argument
-	t, _ := ret.Get(0)
-	fmt.Println("return:", t)
-}