Removed some methods from the JS REPL
This commit is contained in:
		@@ -135,6 +135,12 @@ func Init() {
 | 
			
		||||
 | 
			
		||||
	flag.Parse()
 | 
			
		||||
 | 
			
		||||
	// When the javascript console is started log to a file instead
 | 
			
		||||
	// of stdout
 | 
			
		||||
	if StartJsConsole {
 | 
			
		||||
		LogFile = path.Join(Datadir, "ethereum.log")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var err error
 | 
			
		||||
	if NAT, err = nat.Parse(*natstr); err != nil {
 | 
			
		||||
		log.Fatalf("-nat: %v", err)
 | 
			
		||||
 
 | 
			
		||||
@@ -137,6 +137,9 @@ func main() {
 | 
			
		||||
 | 
			
		||||
	utils.StartEthereum(ethereum)
 | 
			
		||||
 | 
			
		||||
	latestBlock := ethereum.ChainManager().CurrentBlock()
 | 
			
		||||
	fmt.Printf("Welcome to the FRONTIER\n")
 | 
			
		||||
 | 
			
		||||
	if StartJsConsole {
 | 
			
		||||
		InitJsConsole(ethereum)
 | 
			
		||||
	} else if len(InputFile) > 0 {
 | 
			
		||||
 
 | 
			
		||||
@@ -60,6 +60,7 @@ func (self *JSRepl) Start() {
 | 
			
		||||
	if !self.running {
 | 
			
		||||
		self.running = true
 | 
			
		||||
		repllogger.Infoln("init JS Console")
 | 
			
		||||
 | 
			
		||||
		reader := bufio.NewReader(self.history)
 | 
			
		||||
		for {
 | 
			
		||||
			line, err := reader.ReadString('\n')
 | 
			
		||||
 
 | 
			
		||||
@@ -51,8 +51,6 @@ func GenesisBlock(db ethutil.Database) *types.Block {
 | 
			
		||||
	statedb.Sync()
 | 
			
		||||
	genesis.Header().Root = statedb.Root()
 | 
			
		||||
 | 
			
		||||
	fmt.Printf("+++ genesis +++\nRoot: %x\nHash: %x\n", genesis.Header().Root, genesis.Hash())
 | 
			
		||||
 | 
			
		||||
	return genesis
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@ var jsrelogger = logger.NewLogger("JSRE")
 | 
			
		||||
type JSRE struct {
 | 
			
		||||
	ethereum *eth.Ethereum
 | 
			
		||||
	Vm       *otto.Otto
 | 
			
		||||
	pipe     *xeth.XEth
 | 
			
		||||
	xeth     *xeth.XEth
 | 
			
		||||
 | 
			
		||||
	events event.Subscription
 | 
			
		||||
 | 
			
		||||
@@ -67,7 +67,7 @@ func NewJSRE(ethereum *eth.Ethereum) *JSRE {
 | 
			
		||||
	// We have to make sure that, whoever calls this, calls "Stop"
 | 
			
		||||
	go re.mainLoop()
 | 
			
		||||
 | 
			
		||||
	re.Bind("eth", &JSEthereum{re.pipe, re.Vm, ethereum})
 | 
			
		||||
	re.Bind("eth", &JSEthereum{re.xeth, re.Vm, ethereum})
 | 
			
		||||
 | 
			
		||||
	re.initStdFuncs()
 | 
			
		||||
 | 
			
		||||
@@ -113,12 +113,10 @@ func (self *JSRE) mainLoop() {
 | 
			
		||||
func (self *JSRE) initStdFuncs() {
 | 
			
		||||
	t, _ := self.Vm.Get("eth")
 | 
			
		||||
	eth := t.Object()
 | 
			
		||||
	eth.Set("watch", self.watch)
 | 
			
		||||
	eth.Set("addPeer", self.addPeer)
 | 
			
		||||
	eth.Set("connect", self.connect)
 | 
			
		||||
	eth.Set("require", self.require)
 | 
			
		||||
	eth.Set("stopMining", self.stopMining)
 | 
			
		||||
	eth.Set("startMining", self.startMining)
 | 
			
		||||
	eth.Set("execBlock", self.execBlock)
 | 
			
		||||
	eth.Set("dump", self.dump)
 | 
			
		||||
	eth.Set("export", self.export)
 | 
			
		||||
}
 | 
			
		||||
@@ -152,7 +150,8 @@ func (self *JSRE) dump(call otto.FunctionCall) otto.Value {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	statedb := state.New(block.Root(), self.ethereum.Db())
 | 
			
		||||
	v, _ := self.Vm.ToValue(statedb.Dump())
 | 
			
		||||
 | 
			
		||||
	v, _ := self.Vm.ToValue(statedb.RawDump())
 | 
			
		||||
 | 
			
		||||
	return v
 | 
			
		||||
}
 | 
			
		||||
@@ -167,36 +166,7 @@ func (self *JSRE) startMining(call otto.FunctionCall) otto.Value {
 | 
			
		||||
	return v
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// eth.watch
 | 
			
		||||
func (self *JSRE) watch(call otto.FunctionCall) otto.Value {
 | 
			
		||||
	addr, _ := call.Argument(0).ToString()
 | 
			
		||||
	var storageAddr string
 | 
			
		||||
	var cb otto.Value
 | 
			
		||||
	var storageCallback bool
 | 
			
		||||
	if len(call.ArgumentList) > 2 {
 | 
			
		||||
		storageCallback = true
 | 
			
		||||
		storageAddr, _ = call.Argument(1).ToString()
 | 
			
		||||
		cb = call.Argument(2)
 | 
			
		||||
	} else {
 | 
			
		||||
		cb = call.Argument(1)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if storageCallback {
 | 
			
		||||
		self.objectCb[addr+storageAddr] = append(self.objectCb[addr+storageAddr], cb)
 | 
			
		||||
 | 
			
		||||
		// event := "storage:" + string(ethutil.Hex2Bytes(addr)) + ":" + string(ethutil.Hex2Bytes(storageAddr))
 | 
			
		||||
		// self.ethereum.EventMux().Subscribe(event, self.changeChan)
 | 
			
		||||
	} else {
 | 
			
		||||
		self.objectCb[addr] = append(self.objectCb[addr], cb)
 | 
			
		||||
 | 
			
		||||
		// event := "object:" + string(ethutil.Hex2Bytes(addr))
 | 
			
		||||
		// self.ethereum.EventMux().Subscribe(event, self.changeChan)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return otto.UndefinedValue()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *JSRE) addPeer(call otto.FunctionCall) otto.Value {
 | 
			
		||||
func (self *JSRE) connect(call otto.FunctionCall) otto.Value {
 | 
			
		||||
	nodeURL, err := call.Argument(0).ToString()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return otto.FalseValue()
 | 
			
		||||
@@ -222,22 +192,12 @@ func (self *JSRE) require(call otto.FunctionCall) otto.Value {
 | 
			
		||||
	return t
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *JSRE) execBlock(call otto.FunctionCall) otto.Value {
 | 
			
		||||
	hash, err := call.Argument(0).ToString()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return otto.UndefinedValue()
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = utils.BlockDo(self.ethereum, ethutil.Hex2Bytes(hash))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		fmt.Println(err)
 | 
			
		||||
func (self *JSRE) export(call otto.FunctionCall) otto.Value {
 | 
			
		||||
	if len(call.ArgumentList) == 0 {
 | 
			
		||||
		fmt.Println("err: require file name")
 | 
			
		||||
		return otto.FalseValue()
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return otto.TrueValue()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *JSRE) export(call otto.FunctionCall) otto.Value {
 | 
			
		||||
	fn, err := call.Argument(0).ToString()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		fmt.Println(err)
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,7 @@ function pp(object) {
 | 
			
		||||
        str += " ]";
 | 
			
		||||
    } else if(typeof(object) === "object") {
 | 
			
		||||
        str += "{ ";
 | 
			
		||||
        var last = Object.keys(object).sort().pop()
 | 
			
		||||
        var last = Object.keys(object).pop()
 | 
			
		||||
        for(var k in object) {
 | 
			
		||||
            str += k + ": " + pp(object[k]);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -20,7 +20,7 @@ type World struct {
 | 
			
		||||
	Accounts map[string]Account `json:"accounts"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *StateDB) Dump() []byte {
 | 
			
		||||
func (self *StateDB) RawDump() World {
 | 
			
		||||
	world := World{
 | 
			
		||||
		Root:     ethutil.Bytes2Hex(self.trie.Root()),
 | 
			
		||||
		Accounts: make(map[string]Account),
 | 
			
		||||
@@ -39,8 +39,11 @@ func (self *StateDB) Dump() []byte {
 | 
			
		||||
		}
 | 
			
		||||
		world.Accounts[ethutil.Bytes2Hex(it.Key)] = account
 | 
			
		||||
	}
 | 
			
		||||
	return world
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
	json, err := json.MarshalIndent(world, "", "    ")
 | 
			
		||||
func (self *StateDB) Dump() []byte {
 | 
			
		||||
	json, err := json.MarshalIndent(self.RawDump(), "", "    ")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		fmt.Println("dump err", err)
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user