Added open js option for repetitive tasks in ethereal
This commit is contained in:
		
							parent
							
								
									ce8f24e57a
								
							
						
					
					
						commit
						c59d7a899b
					
				| @ -63,6 +63,16 @@ ApplicationWindow { | ||||
| 					txImportDialog.visible = true | ||||
| 				} | ||||
| 			} | ||||
| 
 | ||||
| 			MenuItem { | ||||
| 				text: "Run JS file" | ||||
| 				onTriggered: { | ||||
| 					generalFileDialog.callback = function(path) { | ||||
| 						eth.evalJavascriptFile(path) | ||||
| 					} | ||||
| 					generalFileDialog.open() | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		Menu { | ||||
| @ -452,6 +462,16 @@ ApplicationWindow { | ||||
| 		onAccepted: { | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 
 | ||||
| 	FileDialog { | ||||
| 		id: generalFileDialog | ||||
| 		property var callback; | ||||
| 		onAccepted: { | ||||
| 			var path = this.fileUrl.toString() | ||||
| 			callback.call(this, path) | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	FileDialog { | ||||
| 		id: importDialog | ||||
|  | ||||
| @ -18,6 +18,7 @@ import ( | ||||
| 	"github.com/ethereum/eth-go/ethreact" | ||||
| 	"github.com/ethereum/eth-go/ethutil" | ||||
| 	"github.com/ethereum/eth-go/ethwire" | ||||
| 	"github.com/ethereum/go-ethereum/javascript" | ||||
| 	"github.com/ethereum/go-ethereum/utils" | ||||
| 	"github.com/go-qml/qml" | ||||
| ) | ||||
| @ -47,6 +48,8 @@ type Gui struct { | ||||
| 	config         *ethutil.ConfigManager | ||||
| 
 | ||||
| 	miner *ethminer.Miner | ||||
| 
 | ||||
| 	jsEngine *javascript.JSRE | ||||
| } | ||||
| 
 | ||||
| // Create GUI, but doesn't start it
 | ||||
| @ -58,7 +61,7 @@ func NewWindow(ethereum *eth.Ethereum, config *ethutil.ConfigManager, clientIden | ||||
| 
 | ||||
| 	pub := ethpub.NewPEthereum(ethereum) | ||||
| 
 | ||||
| 	return &Gui{eth: ethereum, txDb: db, pub: pub, logLevel: ethlog.LogLevel(logLevel), Session: session, open: false, clientIdentity: clientIdentity, config: config} | ||||
| 	return &Gui{eth: ethereum, txDb: db, pub: pub, logLevel: ethlog.LogLevel(logLevel), Session: session, open: false, clientIdentity: clientIdentity, config: config, jsEngine: javascript.NewJSRE(ethereum)} | ||||
| } | ||||
| 
 | ||||
| func (gui *Gui) Start(assetPath string) { | ||||
| @ -121,6 +124,9 @@ func (gui *Gui) Stop() { | ||||
| 		gui.open = false | ||||
| 		gui.win.Hide() | ||||
| 	} | ||||
| 
 | ||||
| 	gui.jsEngine.Stop() | ||||
| 
 | ||||
| 	logger.Infoln("Stopped") | ||||
| } | ||||
| 
 | ||||
| @ -464,6 +470,13 @@ func (self *Gui) ImportTx(rlpTx string) { | ||||
| 	self.eth.TxPool().QueueTransaction(tx) | ||||
| } | ||||
| 
 | ||||
| func (self *Gui) SearchChange(blockHash, address, storageAddress string) { | ||||
| } | ||||
| 
 | ||||
| func (self *Gui) EvalJavascriptFile(path string) { | ||||
| 	self.jsEngine.LoadExtFile(path[7:]) | ||||
| } | ||||
| 
 | ||||
| func (gui *Gui) SetCustomIdentifier(customIdentifier string) { | ||||
| 	gui.clientIdentity.SetCustomIdentifier(customIdentifier) | ||||
| 	gui.config.Save("id", customIdentifier) | ||||
|  | ||||
| @ -1,11 +1,13 @@ | ||||
| package main | ||||
| 
 | ||||
| import ( | ||||
| 	"github.com/ethereum/eth-go" | ||||
| 	"github.com/ethereum/go-ethereum/ethereum/repl" | ||||
| 	"github.com/ethereum/go-ethereum/utils" | ||||
| 	"io/ioutil" | ||||
| 	"os" | ||||
| 
 | ||||
| 	"github.com/ethereum/eth-go" | ||||
| 	"github.com/ethereum/go-ethereum/ethereum/repl" | ||||
| 	"github.com/ethereum/go-ethereum/javascript" | ||||
| 	"github.com/ethereum/go-ethereum/utils" | ||||
| ) | ||||
| 
 | ||||
| func InitJsConsole(ethereum *eth.Ethereum) { | ||||
| @ -25,7 +27,7 @@ func ExecJsFile(ethereum *eth.Ethereum, InputFile string) { | ||||
| 	if err != nil { | ||||
| 		logger.Fatalln(err) | ||||
| 	} | ||||
| 	re := ethrepl.NewJSRE(ethereum) | ||||
| 	re := javascript.NewJSRE(ethereum) | ||||
| 	utils.RegisterInterrupt(func(os.Signal) { | ||||
| 		re.Stop() | ||||
| 	}) | ||||
|  | ||||
| @ -3,12 +3,14 @@ package ethrepl | ||||
| import ( | ||||
| 	"bufio" | ||||
| 	"fmt" | ||||
| 	"github.com/ethereum/eth-go" | ||||
| 	"github.com/ethereum/eth-go/ethlog" | ||||
| 	"github.com/ethereum/eth-go/ethutil" | ||||
| 	"io" | ||||
| 	"os" | ||||
| 	"path" | ||||
| 
 | ||||
| 	"github.com/ethereum/eth-go" | ||||
| 	"github.com/ethereum/eth-go/ethlog" | ||||
| 	"github.com/ethereum/eth-go/ethutil" | ||||
| 	"github.com/ethereum/go-ethereum/javascript" | ||||
| ) | ||||
| 
 | ||||
| var logger = ethlog.NewLogger("REPL") | ||||
| @ -19,7 +21,7 @@ type Repl interface { | ||||
| } | ||||
| 
 | ||||
| type JSRepl struct { | ||||
| 	re *JSRE | ||||
| 	re *javascript.JSRE | ||||
| 
 | ||||
| 	prompt string | ||||
| 
 | ||||
| @ -34,7 +36,7 @@ func NewJSRepl(ethereum *eth.Ethereum) *JSRepl { | ||||
| 		panic(err) | ||||
| 	} | ||||
| 
 | ||||
| 	return &JSRepl{re: NewJSRE(ethereum), prompt: "> ", history: hist} | ||||
| 	return &JSRepl{re: javascript.NewJSRE(ethereum), prompt: "> ", history: hist} | ||||
| } | ||||
| 
 | ||||
| func (self *JSRepl) Start() { | ||||
|  | ||||
| @ -115,8 +115,8 @@ L: | ||||
| } | ||||
| 
 | ||||
| func (self *JSRepl) PrintValue(v interface{}) { | ||||
| 	method, _ := self.re.vm.Get("prettyPrint") | ||||
| 	v, err := self.re.vm.ToValue(v) | ||||
| 	method, _ := self.re.Vm.Get("prettyPrint") | ||||
| 	v, err := self.re.Vm.ToValue(v) | ||||
| 	if err == nil { | ||||
| 		method.Call(method, v) | ||||
| 	} | ||||
|  | ||||
| @ -1,9 +1,10 @@ | ||||
| package utils | ||||
| 
 | ||||
| import ( | ||||
| 	"math/big" | ||||
| 
 | ||||
| 	"github.com/ethereum/eth-go/ethchain" | ||||
| 	"github.com/ethereum/eth-go/ethstate" | ||||
| 	"math/big" | ||||
| ) | ||||
| 
 | ||||
| type VMEnv struct { | ||||
| @ -29,5 +30,6 @@ func (self *VMEnv) PrevHash() []byte       { return self.block.PrevHash } | ||||
| func (self *VMEnv) Coinbase() []byte       { return self.block.Coinbase } | ||||
| func (self *VMEnv) Time() int64            { return self.block.Time } | ||||
| func (self *VMEnv) Difficulty() *big.Int   { return self.block.Difficulty } | ||||
| func (self *VMEnv) BlockHash() []byte      { return self.block.Hash() } | ||||
| func (self *VMEnv) Value() *big.Int        { return self.value } | ||||
| func (self *VMEnv) State() *ethstate.State { return self.state } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user