From b42c70be9c669ba372ed99d820a5a9e807191619 Mon Sep 17 00:00:00 2001 From: obscuren Date: Mon, 26 May 2014 00:10:38 +0200 Subject: Recv send for txs --- ethereal/ui/gui.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index 022f192bf..a8bfb2b58 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -151,7 +151,15 @@ func (gui *Gui) readPreviousTransactions() { for it.Next() { tx := ethchain.NewTransactionFromBytes(it.Value()) - gui.win.Root().Call("addTx", ethpub.NewPTx(tx)) + var inout string + if bytes.Compare(tx.Sender(), gui.addr) == 0 { + inout = "send" + } else { + inout = "recv" + } + + gui.win.Root().Call("addTx", ethpub.NewPTx(tx), inout) + } it.Release() } @@ -207,12 +215,12 @@ func (gui *Gui) update() { object := state.GetAccount(gui.addr) if bytes.Compare(tx.Sender(), gui.addr) == 0 { - gui.win.Root().Call("addTx", ethpub.NewPTx(tx)) + gui.win.Root().Call("addTx", ethpub.NewPTx(tx), "send") gui.txDb.Put(tx.Hash(), tx.RlpEncode()) unconfirmedFunds.Sub(unconfirmedFunds, tx.Value) } else if bytes.Compare(tx.Recipient, gui.addr) == 0 { - gui.win.Root().Call("addTx", ethpub.NewPTx(tx)) + gui.win.Root().Call("addTx", ethpub.NewPTx(tx), "recv") gui.txDb.Put(tx.Hash(), tx.RlpEncode()) unconfirmedFunds.Add(unconfirmedFunds, tx.Value) @@ -261,7 +269,5 @@ func (gui *Gui) Transact(recipient, value, gas, gasPrice, data string) (*ethpub. func (gui *Gui) Create(recipient, value, gas, gasPrice, data string) (*ethpub.PReceipt, error) { keyPair := ethutil.GetKeyRing().Get(0) - //mainInput, initInput := mutan.PreParse(data) - return gui.pub.Create(ethutil.Hex(keyPair.PrivateKey), value, gas, gasPrice, data) } -- cgit v1.2.3 From 818bc84591c490b29cb28ee1e4895c8f303a0af1 Mon Sep 17 00:00:00 2001 From: obscuren Date: Mon, 26 May 2014 00:39:05 +0200 Subject: Bump --- ethereal/ui/gui.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index a8bfb2b58..8d6796ddb 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -54,7 +54,7 @@ func New(ethereum *eth.Ethereum) *Gui { } func (gui *Gui) Start(assetPath string) { - const version = "0.5.0 RC8" + const version = "0.5.0 RC9" defer gui.txDb.Close() -- cgit v1.2.3 From 5fc6ee6a4acd1db22a38abb4cff5e5196bf1538e Mon Sep 17 00:00:00 2001 From: Maran Date: Mon, 26 May 2014 17:07:20 +0200 Subject: Implemented simple block/tx explorer --- ethereal/ui/gui.go | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index 8d6796ddb..794786d97 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -136,14 +136,20 @@ func (gui *Gui) createWindow(comp qml.Object) *qml.Window { return gui.win } - -func (gui *Gui) setInitialBlockChain() { - // Load previous 10 blocks - chain := gui.eth.BlockChain().GetChain(gui.eth.BlockChain().CurrentBlock.Hash(), 10) - for _, block := range chain { - gui.processBlock(block) +func (gui *Gui) recursiveAdd(sBlk []byte) { + blk := gui.eth.BlockChain().GetBlock(sBlk) + if blk != nil { + //ethutil.Config.Log.Infoln("Adding block", blk) + gui.processBlock(blk) + gui.recursiveAdd(blk.PrevHash) + return + } else { + //ethutil.Config.Log.Debugln("At Genesis, added all blocks to GUI") } - + return +} +func (gui *Gui) setInitialBlockChain() { + gui.recursiveAdd(gui.eth.BlockChain().LastBlockHash) } func (gui *Gui) readPreviousTransactions() { -- cgit v1.2.3 From d694e00a3340a36c39872950bb7a2404e9686c18 Mon Sep 17 00:00:00 2001 From: obscuren Date: Mon, 26 May 2014 21:11:38 +0200 Subject: Fixed debugger --- ethereal/ui/gui.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index 8d6796ddb..1018d77ac 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -130,7 +130,7 @@ func (gui *Gui) createWindow(comp qml.Object) *qml.Window { gui.win = win gui.uiLib.win = win - db := &Debugger{gui.win, make(chan bool)} + db := &Debugger{gui.win, make(chan bool), true} gui.lib.Db = db gui.uiLib.Db = db -- cgit v1.2.3 From 47a58b40cd4ba764c9823448687307bb4a80c697 Mon Sep 17 00:00:00 2001 From: Maran Date: Tue, 27 May 2014 10:29:39 +0200 Subject: Removed recursive function for loop --- ethereal/ui/gui.go | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index 64c739c15..7577de1fa 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -136,20 +136,13 @@ func (gui *Gui) createWindow(comp qml.Object) *qml.Window { return gui.win } -func (gui *Gui) recursiveAdd(sBlk []byte) { +func (gui *Gui) setInitialBlockChain() { + sBlk := gui.eth.BlockChain().LastBlockHash blk := gui.eth.BlockChain().GetBlock(sBlk) - if blk != nil { - //ethutil.Config.Log.Infoln("Adding block", blk) + for ; blk != nil; blk = gui.eth.BlockChain().GetBlock(sBlk) { + sBlk = blk.PrevHash gui.processBlock(blk) - gui.recursiveAdd(blk.PrevHash) - return - } else { - //ethutil.Config.Log.Debugln("At Genesis, added all blocks to GUI") } - return -} -func (gui *Gui) setInitialBlockChain() { - gui.recursiveAdd(gui.eth.BlockChain().LastBlockHash) } func (gui *Gui) readPreviousTransactions() { -- cgit v1.2.3 From 1ab865a994758cef8a6bf75a3cc263f16a97d847 Mon Sep 17 00:00:00 2001 From: Maran Date: Tue, 27 May 2014 11:49:42 +0200 Subject: Adding new blocks on broadcast --- ethereal/ui/gui.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index 7577de1fa..18e13d985 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -141,7 +141,7 @@ func (gui *Gui) setInitialBlockChain() { blk := gui.eth.BlockChain().GetBlock(sBlk) for ; blk != nil; blk = gui.eth.BlockChain().GetBlock(sBlk) { sBlk = blk.PrevHash - gui.processBlock(blk) + gui.processBlock(blk, true) } } @@ -163,8 +163,8 @@ func (gui *Gui) readPreviousTransactions() { it.Release() } -func (gui *Gui) processBlock(block *ethchain.Block) { - gui.win.Root().Call("addBlock", ethpub.NewPBlock(block)) +func (gui *Gui) processBlock(block *ethchain.Block, initial bool) { + gui.win.Root().Call("addBlock", ethpub.NewPBlock(block), initial) } func (gui *Gui) setWalletValue(amount, unconfirmedFunds *big.Int) { @@ -203,6 +203,7 @@ func (gui *Gui) update() { select { case b := <-blockChan: block := b.Resource.(*ethchain.Block) + gui.processBlock(block, false) if bytes.Compare(block.Coinbase, gui.addr) == 0 { gui.setWalletValue(gui.eth.StateManager().CurrentState().GetAccount(gui.addr).Amount, nil) } -- cgit v1.2.3 From 47417506c377dd0848739473fa14a51708b6a034 Mon Sep 17 00:00:00 2001 From: obscuren Date: Tue, 27 May 2014 13:28:11 +0200 Subject: New debugger implemented --- ethereal/ui/gui.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index 1018d77ac..ca6da5c49 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -130,7 +130,7 @@ func (gui *Gui) createWindow(comp qml.Object) *qml.Window { gui.win = win gui.uiLib.win = win - db := &Debugger{gui.win, make(chan bool), true} + db := &Debugger{gui.win, make(chan bool), make(chan bool), true} gui.lib.Db = db gui.uiLib.Db = db -- cgit v1.2.3 From 34b861c19c02947503a175f7b2be6c880a007d11 Mon Sep 17 00:00:00 2001 From: obscuren Date: Tue, 27 May 2014 16:10:15 +0200 Subject: bump --- ethereal/ui/gui.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index b49fafac1..63ab028ab 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -54,7 +54,7 @@ func New(ethereum *eth.Ethereum) *Gui { } func (gui *Gui) Start(assetPath string) { - const version = "0.5.0 RC9" + const version = "0.5.0 RC10" defer gui.txDb.Close() -- cgit v1.2.3 From 58032d60e748611b0610cf764743c6b8e5681a87 Mon Sep 17 00:00:00 2001 From: Maran Date: Wed, 28 May 2014 16:17:57 +0200 Subject: Bump to RC11 --- ethereal/ui/gui.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index 63ab028ab..32ff76b1a 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -54,7 +54,7 @@ func New(ethereum *eth.Ethereum) *Gui { } func (gui *Gui) Start(assetPath string) { - const version = "0.5.0 RC10" + const version = "0.5.0 RC11" defer gui.txDb.Close() -- cgit v1.2.3 From 8fab7ce37d6748cbf34ebee96622448ec8a4c9e3 Mon Sep 17 00:00:00 2001 From: obscuren Date: Wed, 28 May 2014 23:14:23 +0200 Subject: Fixes and improved debugger --- ethereal/ui/gui.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index 63ab028ab..6a1c4f110 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -269,5 +269,5 @@ func (gui *Gui) Transact(recipient, value, gas, gasPrice, data string) (*ethpub. func (gui *Gui) Create(recipient, value, gas, gasPrice, data string) (*ethpub.PReceipt, error) { keyPair := ethutil.GetKeyRing().Get(0) - return gui.pub.Create(ethutil.Hex(keyPair.PrivateKey), value, gas, gasPrice, data) + return gui.pub.Transact(ethutil.Hex(keyPair.PrivateKey), recipient, value, gas, gasPrice, data) } -- cgit v1.2.3 From efadfbfb1779549c2898304dce4bbce30b067ceb Mon Sep 17 00:00:00 2001 From: obscuren Date: Thu, 29 May 2014 12:24:14 +0200 Subject: Minor UI changes * Moved log from block view * Prepend instead of append for logs --- ethereal/ui/gui.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index 1698f5de0..9a8673a1c 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -66,7 +66,6 @@ func (gui *Gui) Start(assetPath string) { }}) ethutil.Config.SetClientString(fmt.Sprintf("/Ethereal v%s", version)) - ethutil.Config.Log.Infoln("[GUI] Starting GUI") // Create a new QML engine gui.engine = qml.NewEngine() context := gui.engine.Context() @@ -93,6 +92,9 @@ func (gui *Gui) Start(assetPath string) { panic(err) } + ethutil.Config.Log.AddLogSystem(gui) + ethutil.Config.Log.Infoln("[GUI] Starting GUI") + win.Show() win.Wait() -- cgit v1.2.3 From fcbf99a30a15b445c35d70a8a781190a2739845b Mon Sep 17 00:00:00 2001 From: obscuren Date: Fri, 30 May 2014 11:50:30 +0200 Subject: Minor GUI updates * IceCream => IceCREAM * Added coin base to block info --- ethereal/ui/gui.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index 9a8673a1c..d08c1b118 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -110,6 +110,7 @@ func (gui *Gui) showWallet(context *qml.Context) (*qml.Window, error) { win := gui.createWindow(component) go gui.setInitialBlockChain() + go gui.loadAddressBook() go gui.readPreviousTransactions() go gui.update() @@ -147,6 +148,19 @@ func (gui *Gui) setInitialBlockChain() { } } +type address struct { + Name, Address string +} + +var namereg = ethutil.FromHex("bb5f186604d057c1c5240ca2ae0f6430138ac010") + +func (gui *Gui) loadAddressBook() { + gui.win.Root().Call("clearAddress") + gui.eth.StateManager().CurrentState().GetStateObject(namereg).State().EachStorage(func(name string, value *ethutil.Value) { + gui.win.Root().Call("addAddress", struct{ Name, Address string }{name, ethutil.Hex(value.Bytes())}) + }) +} + func (gui *Gui) readPreviousTransactions() { it := gui.txDb.Db().NewIterator(nil, nil) for it.Next() { @@ -191,10 +205,12 @@ func (gui *Gui) update() { blockChan := make(chan ethutil.React, 1) txChan := make(chan ethutil.React, 1) + objectChan := make(chan ethutil.React, 1) reactor.Subscribe("newBlock", blockChan) reactor.Subscribe("newTx:pre", txChan) reactor.Subscribe("newTx:post", txChan) + reactor.Subscribe("object:"+string(namereg), objectChan) state := gui.eth.StateManager().TransState() @@ -241,6 +257,8 @@ func (gui *Gui) update() { state.UpdateStateObject(object) } + case <-objectChan: + gui.loadAddressBook() } } } -- cgit v1.2.3 From 0938b56829b9cbe8804a4ca85b14534908dbdfbc Mon Sep 17 00:00:00 2001 From: obscuren Date: Fri, 30 May 2014 13:04:23 +0200 Subject: Update peer info --- ethereal/ui/gui.go | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index d08c1b118..7c37e2d62 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -109,9 +109,11 @@ func (gui *Gui) showWallet(context *qml.Context) (*qml.Window, error) { win := gui.createWindow(component) - go gui.setInitialBlockChain() - go gui.loadAddressBook() - go gui.readPreviousTransactions() + gui.setInitialBlockChain() + gui.loadAddressBook() + gui.readPreviousTransactions() + gui.setPeerInfo() + go gui.update() return win, nil @@ -206,11 +208,13 @@ func (gui *Gui) update() { blockChan := make(chan ethutil.React, 1) txChan := make(chan ethutil.React, 1) objectChan := make(chan ethutil.React, 1) + peerChan := make(chan ethutil.React, 1) reactor.Subscribe("newBlock", blockChan) reactor.Subscribe("newTx:pre", txChan) reactor.Subscribe("newTx:post", txChan) reactor.Subscribe("object:"+string(namereg), objectChan) + reactor.Subscribe("peerList", peerChan) state := gui.eth.StateManager().TransState() @@ -259,10 +263,16 @@ func (gui *Gui) update() { } case <-objectChan: gui.loadAddressBook() + case <-peerChan: + gui.setPeerInfo() } } } +func (gui *Gui) setPeerInfo() { + gui.win.Root().Call("setPeers", fmt.Sprintf("%d / %d", gui.eth.PeerCount(), gui.eth.MaxPeers)) +} + // Logging functions that log directly to the GUI interface func (gui *Gui) Println(v ...interface{}) { str := strings.TrimRight(fmt.Sprintln(v...), "\n") -- cgit v1.2.3 From e7c9b86a5aba022afd812f1a4fb554ee17a74bbd Mon Sep 17 00:00:00 2001 From: obscuren Date: Fri, 30 May 2014 13:28:31 +0200 Subject: Improved UI * Added mining button --- ethereal/ui/gui.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index 7c37e2d62..d6430d1fe 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -8,6 +8,7 @@ import ( "github.com/ethereum/eth-go/ethdb" "github.com/ethereum/eth-go/ethpub" "github.com/ethereum/eth-go/ethutil" + "github.com/ethereum/go-ethereum/utils" "github.com/go-qml/qml" "math/big" "strings" @@ -101,6 +102,19 @@ func (gui *Gui) Start(assetPath string) { gui.eth.Stop() } +func (gui *Gui) ToggleMining() { + var txt string + if gui.eth.Mining { + utils.StopMining(gui.eth) + txt = "Start mining" + } else { + utils.StartMining(gui.eth) + txt = "Stop mining" + } + + gui.win.Root().Set("miningButtonText", txt) +} + func (gui *Gui) showWallet(context *qml.Context) (*qml.Window, error) { component, err := gui.engine.LoadFile(gui.uiLib.AssetPath("qml/wallet.qml")) if err != nil { -- cgit v1.2.3 From 0bdb0a9d58be08e210eb94dc6893f6103202ae7c Mon Sep 17 00:00:00 2001 From: obscuren Date: Fri, 30 May 2014 19:36:05 +0200 Subject: Added ini file for ethereum. fixes #66 --- ethereal/ui/gui.go | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index d6430d1fe..42d1c7a04 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -67,6 +67,7 @@ func (gui *Gui) Start(assetPath string) { }}) ethutil.Config.SetClientString(fmt.Sprintf("/Ethereal v%s", version)) + // Create a new QML engine gui.engine = qml.NewEngine() context := gui.engine.Context() @@ -315,3 +316,11 @@ func (gui *Gui) Create(recipient, value, gas, gasPrice, data string) (*ethpub.PR return gui.pub.Transact(ethutil.Hex(keyPair.PrivateKey), recipient, value, gas, gasPrice, data) } + +func (gui *Gui) ChangeClientId(id string) { + ethutil.Config.SetIdentifier(id) +} + +func (gui *Gui) ClientId() string { + return ethutil.Config.Identifier +} -- cgit v1.2.3 From be27309dbb75730c74fed1c355411997472203c6 Mon Sep 17 00:00:00 2001 From: obscuren Date: Fri, 30 May 2014 20:35:37 +0200 Subject: show first? --- ethereal/ui/gui.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index 42d1c7a04..b8245f47e 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -94,10 +94,11 @@ func (gui *Gui) Start(assetPath string) { panic(err) } + win.Show() + ethutil.Config.Log.AddLogSystem(gui) ethutil.Config.Log.Infoln("[GUI] Starting GUI") - win.Show() win.Wait() gui.eth.Stop() -- cgit v1.2.3 From d6acb74ac95fc2630e5a1e2c71cc6534f135606b Mon Sep 17 00:00:00 2001 From: obscuren Date: Sat, 31 May 2014 11:34:37 +0200 Subject: fixed logging issue that would otherwise crash the client. Fixes #68 --- ethereal/ui/gui.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index b8245f47e..44215efdb 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -87,6 +87,8 @@ func (gui *Gui) Start(assetPath string) { win, err = gui.showKeyImport(context) } else { win, err = gui.showWallet(context) + + ethutil.Config.Log.AddLogSystem(gui) } if err != nil { ethutil.Config.Log.Infoln("FATAL: asset not found: you can set an alternative asset path on on the command line using option 'asset_path'") @@ -94,11 +96,9 @@ func (gui *Gui) Start(assetPath string) { panic(err) } - win.Show() - - ethutil.Config.Log.AddLogSystem(gui) ethutil.Config.Log.Infoln("[GUI] Starting GUI") + win.Show() win.Wait() gui.eth.Stop() @@ -174,9 +174,12 @@ var namereg = ethutil.FromHex("bb5f186604d057c1c5240ca2ae0f6430138ac010") func (gui *Gui) loadAddressBook() { gui.win.Root().Call("clearAddress") - gui.eth.StateManager().CurrentState().GetStateObject(namereg).State().EachStorage(func(name string, value *ethutil.Value) { - gui.win.Root().Call("addAddress", struct{ Name, Address string }{name, ethutil.Hex(value.Bytes())}) - }) + stateObject := gui.eth.StateManager().CurrentState().GetStateObject(namereg) + if stateObject != nil { + stateObject.State().EachStorage(func(name string, value *ethutil.Value) { + gui.win.Root().Call("addAddress", struct{ Name, Address string }{name, ethutil.Hex(value.Bytes())}) + }) + } } func (gui *Gui) readPreviousTransactions() { -- cgit v1.2.3 From a6f4eef1dadee9d8caa9b0ac20e2ce4a3034a100 Mon Sep 17 00:00:00 2001 From: Maran Date: Mon, 2 Jun 2014 15:16:37 +0200 Subject: Added Peer Window --- ethereal/ui/gui.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index 44215efdb..db06add8e 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -12,6 +12,7 @@ import ( "github.com/go-qml/qml" "math/big" "strings" + "time" ) type Gui struct { @@ -91,7 +92,7 @@ func (gui *Gui) Start(assetPath string) { ethutil.Config.Log.AddLogSystem(gui) } if err != nil { - ethutil.Config.Log.Infoln("FATAL: asset not found: you can set an alternative asset path on on the command line using option 'asset_path'") + ethutil.Config.Log.Infoln("FATAL: asset not found: you can set an alternative asset path on on the command line using option 'asset_path'", err) panic(err) } @@ -235,6 +236,8 @@ func (gui *Gui) update() { reactor.Subscribe("object:"+string(namereg), objectChan) reactor.Subscribe("peerList", peerChan) + ticker := time.NewTicker(5 * time.Second) + state := gui.eth.StateManager().TransState() unconfirmedFunds := new(big.Int) @@ -284,12 +287,19 @@ func (gui *Gui) update() { gui.loadAddressBook() case <-peerChan: gui.setPeerInfo() + case <-ticker.C: + gui.setPeerInfo() } } } func (gui *Gui) setPeerInfo() { gui.win.Root().Call("setPeers", fmt.Sprintf("%d / %d", gui.eth.PeerCount(), gui.eth.MaxPeers)) + + gui.win.Root().Call("resetPeers") + for _, peer := range gui.pub.GetPeers() { + gui.win.Root().Call("addPeer", peer) + } } // Logging functions that log directly to the GUI interface -- cgit v1.2.3 From cc1d043423293eff97d01c8f4897b354112c8210 Mon Sep 17 00:00:00 2001 From: Maran Date: Tue, 3 Jun 2014 11:48:44 +0200 Subject: Implemented transaction catching up. Implements #73 --- ethereal/ui/gui.go | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index db06add8e..701bacf00 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -163,6 +163,17 @@ func (gui *Gui) setInitialBlockChain() { blk := gui.eth.BlockChain().GetBlock(sBlk) for ; blk != nil; blk = gui.eth.BlockChain().GetBlock(sBlk) { sBlk = blk.PrevHash + + // Loop through all transactions to see if we missed any while being offline + for _, tx := range blk.Transactions() { + if bytes.Compare(tx.Sender(), gui.addr) == 0 || bytes.Compare(tx.Recipient, gui.addr) == 0 { + if ok, _ := gui.txDb.Get(tx.Hash()); ok == nil { + gui.txDb.Put(tx.Hash(), tx.RlpEncode()) + } + + } + } + gui.processBlock(blk, true) } } -- cgit v1.2.3 From 3755616a2912f47a963d4ecc781bddd4229fe290 Mon Sep 17 00:00:00 2001 From: Maran Date: Tue, 3 Jun 2014 14:30:26 +0200 Subject: Added namereg register option to qml wallet --- ethereal/ui/gui.go | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index 701bacf00..9fc1abc28 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -329,6 +329,11 @@ func (gui *Gui) Printf(format string, v ...interface{}) { gui.win.Root().Call("addLog", line) } } +func (gui *Gui) RegisterName(name string) { + keyPair := ethutil.GetKeyRing().Get(0) + name = fmt.Sprintf("\"%s\"\n1", name) + gui.pub.Transact(ethutil.Hex(keyPair.PrivateKey), "namereg", "1000", "1000000", "150", name) +} func (gui *Gui) Transact(recipient, value, gas, gasPrice, data string) (*ethpub.PReceipt, error) { keyPair := ethutil.GetKeyRing().Get(0) -- cgit v1.2.3 From 7843390ecd52df37a28282d76be198d5456ce385 Mon Sep 17 00:00:00 2001 From: Maran Date: Wed, 4 Jun 2014 15:54:33 +0200 Subject: Implement getStateKeyVal for JS bindings. Gives JS the option to 'loop' over contract key/val storage --- ethereal/ui/gui.go | 2 ++ 1 file changed, 2 insertions(+) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index 9fc1abc28..4dda5017f 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -65,6 +65,8 @@ func (gui *Gui) Start(assetPath string) { Init: func(p *ethpub.PBlock, obj qml.Object) { p.Number = 0; p.Hash = "" }, }, { Init: func(p *ethpub.PTx, obj qml.Object) { p.Value = ""; p.Hash = ""; p.Address = "" }, + }, { + Init: func(p *ethpub.KeyVal, obj qml.Object) { p.Key = ""; p.Value = "" }, }}) ethutil.Config.SetClientString(fmt.Sprintf("/Ethereal v%s", version)) -- cgit v1.2.3 From ba3623d0cc0608f2d73e10e61a184238924fccdb Mon Sep 17 00:00:00 2001 From: obscuren Date: Mon, 9 Jun 2014 22:04:16 +0200 Subject: Fixed debugger hang --- ethereal/ui/gui.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index 4dda5017f..5954df70c 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -154,7 +154,7 @@ func (gui *Gui) createWindow(comp qml.Object) *qml.Window { gui.win = win gui.uiLib.win = win - db := &Debugger{gui.win, make(chan bool), make(chan bool), true} + db := &Debugger{gui.win, make(chan bool), make(chan bool), true, false} gui.lib.Db = db gui.uiLib.Db = db -- cgit v1.2.3 From d929c634749c3c2db9f3290e635a763eba211656 Mon Sep 17 00:00:00 2001 From: obscuren Date: Mon, 9 Jun 2014 22:23:33 +0200 Subject: bump --- ethereal/ui/gui.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ethereal/ui/gui.go') diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index 5954df70c..2ba89ce22 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -56,7 +56,7 @@ func New(ethereum *eth.Ethereum) *Gui { } func (gui *Gui) Start(assetPath string) { - const version = "0.5.0 RC11" + const version = "0.5.0 RC12" defer gui.txDb.Close() -- cgit v1.2.3