提交 fcbf99a3 编写于 作者: O obscuren

Minor GUI updates

* IceCream => IceCREAM
* Added coin base to block info
上级 40d72ff4
......@@ -8,7 +8,7 @@ import Ethereum 1.0
ApplicationWindow {
visible: false
title: "IceCream"
title: "IceCREAM"
minimumWidth: 1280
minimumHeight: 900
width: 1290
......
......@@ -245,10 +245,25 @@ ApplicationWindow {
width: 500
}
property var addressModel: ListModel {
id: addressModel
}
TableView {
id: addressView
width: parent.width
height: 200
anchors.bottom: logView.top
TableViewColumn{ role: "name"; title: "name" }
TableViewColumn{ role: "address"; title: "address"; width: 300}
model: addressModel
}
property var logModel: ListModel {
id: logModel
}
TableView {
id: logView
width: parent.width
......@@ -342,13 +357,13 @@ ApplicationWindow {
visible: false
property var block
width: root.width
height: 240
height: 300
Component{
id: blockDetailsDelegate
Rectangle {
color: "#252525"
width: popup.width
height: 200
height: 150
Column {
anchors.leftMargin: 10
anchors.topMargin: 5
......@@ -357,6 +372,7 @@ ApplicationWindow {
Text { text: '<h3>Block details</h3>'; color: "#F2F2F2"}
Text { text: '<b>Block number:</b> ' + number; color: "#F2F2F2"}
Text { text: '<b>Hash:</b> ' + hash; color: "#F2F2F2"}
Text { text: '<b>Coinbase:</b> ' + coinbase; color: "#F2F2F2"}
Text { text: '<b>Block found at:</b> ' + prettyTime; color: "#F2F2F2"}
}
}
......@@ -365,7 +381,7 @@ ApplicationWindow {
model: singleBlock
delegate: blockDetailsDelegate
anchors.top: parent.top
height: 70
height: 100
anchors.leftMargin: 20
id: listViewThing
Layout.maximumHeight: 40
......@@ -390,7 +406,7 @@ ApplicationWindow {
if(tx.data) {
popup.showContractData(tx)
}else{
popup.height = 230
popup.height = 440
}
}
}
......@@ -404,7 +420,7 @@ ApplicationWindow {
contractLabel.text = "<h4> Transaction ran contract " + tx.address + "</h4>"
contractData.text = tx.rawData
}
popup.height = 400
popup.height = 540
}
Rectangle {
......@@ -456,7 +472,7 @@ ApplicationWindow {
}
function setDetails(block){
singleBlock.set(0,block)
popup.height = 230
popup.height = 300
transactionModel.clear()
if(block.txs != undefined){
for(var i = 0; i < block.txs.count; ++i) {
......@@ -620,36 +636,15 @@ ApplicationWindow {
}
}
function setAsm(asm) {
asmModel.append({asm: asm})
}
function setInstruction(num) {
asmTableView.selection.clear()
asmTableView.selection.select(num-1)
}
function clearAsm() {
asmModel.clear()
}
function setMem(mem) {
memModel.append({num: mem.num, value: mem.value})
}
function clearMem(){
memModel.clear()
}
function setStack(stack) {
stackModel.append({value: stack})
}
function addDebugMessage(message){
console.log("WOOP:")
debuggerLog.append({value: message})
}
function clearStack() {
stackModel.clear()
function addAddress(address) {
addressModel.append({name: address.name, address: address.address})
}
function clearAddress() {
addressModel.clear()
}
function loadPlugin(name) {
......@@ -683,9 +678,9 @@ ApplicationWindow {
}
if(initial){
blockModel.append({number: block.number, hash: block.hash, txs: txs, txAmount: amount, time: block.time, prettyTime: convertToPretty(block.time)})
blockModel.append({number: block.number, coinbase: block.coinbase, hash: block.hash, txs: txs, txAmount: amount, time: block.time, prettyTime: convertToPretty(block.time)})
}else{
blockModel.insert(0, {number: block.number, hash: block.hash, txs: txs, txAmount: amount, time: block.time, prettyTime: convertToPretty(block.time)})
blockModel.insert(0, {number: block.number, coinbase: block.coinbase, hash: block.hash, txs: txs, txAmount: amount, time: block.time, prettyTime: convertToPretty(block.time)})
}
}
......
......@@ -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()
}
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册