Minor GUI updates
* IceCream => IceCREAM * Added coin base to block info
This commit is contained in:
parent
40d72ff40b
commit
fcbf99a30a
|
@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue