aboutsummaryrefslogtreecommitdiffstats
path: root/ui/gui.go
diff options
context:
space:
mode:
Diffstat (limited to 'ui/gui.go')
-rw-r--r--ui/gui.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/ui/gui.go b/ui/gui.go
index 51fd6d9a8..f0e281de1 100644
--- a/ui/gui.go
+++ b/ui/gui.go
@@ -18,6 +18,17 @@ type Block struct {
Hash string
}
+type Tx struct {
+ Value, Hash, Address string
+}
+
+func NewTxFromTransaction(tx *ethchain.Transaction) *Tx {
+ hash := hex.EncodeToString(tx.Hash())
+ sender := hex.EncodeToString(tx.Recipient)
+
+ return &Tx{Hash: hash[:4], Value: tx.Value.String(), Address: sender}
+}
+
// Creates a new QML Block from a chain block
func NewBlockFromBlock(block *ethchain.Block) *Block {
info := block.BlockInfo()
@@ -56,6 +67,8 @@ func (ui *Gui) Start() {
// Register ethereum functions
qml.RegisterTypes("Ethereum", 1, 0, []qml.TypeSpec{{
Init: func(p *Block, obj qml.Object) { p.Number = 0; p.Hash = "" },
+ }, {
+ Init: func(p *Tx, obj qml.Object) { p.Value = ""; p.Hash = ""; p.Address = "" },
}})
ethutil.Config.Log.Infoln("[GUI] Starting GUI")
@@ -66,6 +79,7 @@ func (ui *Gui) Start() {
if err != nil {
panic(err)
}
+ ui.engine.LoadFile("transactions.qml")
ui.win = component.CreateWindow(nil)
@@ -77,6 +91,7 @@ func (ui *Gui) Start() {
// Register the ui as a block processor
ui.eth.BlockManager.SecondaryBlockProcessor = ui
+ ui.eth.TxPool.SecondaryProcessor = ui
// Add the ui as a log system so we can log directly to the UGI
ethutil.Config.Log.AddLogSystem(ui)
@@ -102,6 +117,10 @@ func (ui *Gui) ProcessBlock(block *ethchain.Block) {
ui.win.Root().Call("addBlock", NewBlockFromBlock(block))
}
+func (ui *Gui) ProcessTransaction(tx *ethchain.Transaction) {
+ ui.win.Root().Call("addTx", NewTxFromTransaction(tx))
+}
+
// Logging functions that log directly to the GUI interface
func (ui *Gui) Println(v ...interface{}) {
str := strings.TrimRight(fmt.Sprintln(v...), "\n")