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