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 {
|
ApplicationWindow {
|
||||||
visible: false
|
visible: false
|
||||||
title: "IceCream"
|
title: "IceCREAM"
|
||||||
minimumWidth: 1280
|
minimumWidth: 1280
|
||||||
minimumHeight: 900
|
minimumHeight: 900
|
||||||
width: 1290
|
width: 1290
|
||||||
|
|
|
@ -245,10 +245,25 @@ ApplicationWindow {
|
||||||
width: 500
|
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 {
|
property var logModel: ListModel {
|
||||||
id: logModel
|
id: logModel
|
||||||
}
|
}
|
||||||
|
|
||||||
TableView {
|
TableView {
|
||||||
id: logView
|
id: logView
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
@ -342,13 +357,13 @@ ApplicationWindow {
|
||||||
visible: false
|
visible: false
|
||||||
property var block
|
property var block
|
||||||
width: root.width
|
width: root.width
|
||||||
height: 240
|
height: 300
|
||||||
Component{
|
Component{
|
||||||
id: blockDetailsDelegate
|
id: blockDetailsDelegate
|
||||||
Rectangle {
|
Rectangle {
|
||||||
color: "#252525"
|
color: "#252525"
|
||||||
width: popup.width
|
width: popup.width
|
||||||
height: 200
|
height: 150
|
||||||
Column {
|
Column {
|
||||||
anchors.leftMargin: 10
|
anchors.leftMargin: 10
|
||||||
anchors.topMargin: 5
|
anchors.topMargin: 5
|
||||||
|
@ -357,6 +372,7 @@ ApplicationWindow {
|
||||||
Text { text: '<h3>Block details</h3>'; color: "#F2F2F2"}
|
Text { text: '<h3>Block details</h3>'; color: "#F2F2F2"}
|
||||||
Text { text: '<b>Block number:</b> ' + number; color: "#F2F2F2"}
|
Text { text: '<b>Block number:</b> ' + number; color: "#F2F2F2"}
|
||||||
Text { text: '<b>Hash:</b> ' + hash; 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"}
|
Text { text: '<b>Block found at:</b> ' + prettyTime; color: "#F2F2F2"}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -365,7 +381,7 @@ ApplicationWindow {
|
||||||
model: singleBlock
|
model: singleBlock
|
||||||
delegate: blockDetailsDelegate
|
delegate: blockDetailsDelegate
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
height: 70
|
height: 100
|
||||||
anchors.leftMargin: 20
|
anchors.leftMargin: 20
|
||||||
id: listViewThing
|
id: listViewThing
|
||||||
Layout.maximumHeight: 40
|
Layout.maximumHeight: 40
|
||||||
|
@ -390,7 +406,7 @@ ApplicationWindow {
|
||||||
if(tx.data) {
|
if(tx.data) {
|
||||||
popup.showContractData(tx)
|
popup.showContractData(tx)
|
||||||
}else{
|
}else{
|
||||||
popup.height = 230
|
popup.height = 440
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -404,7 +420,7 @@ ApplicationWindow {
|
||||||
contractLabel.text = "<h4> Transaction ran contract " + tx.address + "</h4>"
|
contractLabel.text = "<h4> Transaction ran contract " + tx.address + "</h4>"
|
||||||
contractData.text = tx.rawData
|
contractData.text = tx.rawData
|
||||||
}
|
}
|
||||||
popup.height = 400
|
popup.height = 540
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
|
@ -456,7 +472,7 @@ ApplicationWindow {
|
||||||
}
|
}
|
||||||
function setDetails(block){
|
function setDetails(block){
|
||||||
singleBlock.set(0,block)
|
singleBlock.set(0,block)
|
||||||
popup.height = 230
|
popup.height = 300
|
||||||
transactionModel.clear()
|
transactionModel.clear()
|
||||||
if(block.txs != undefined){
|
if(block.txs != undefined){
|
||||||
for(var i = 0; i < block.txs.count; ++i) {
|
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){
|
function addDebugMessage(message){
|
||||||
console.log("WOOP:")
|
|
||||||
debuggerLog.append({value: message})
|
debuggerLog.append({value: message})
|
||||||
}
|
}
|
||||||
|
|
||||||
function clearStack() {
|
function addAddress(address) {
|
||||||
stackModel.clear()
|
addressModel.append({name: address.name, address: address.address})
|
||||||
|
}
|
||||||
|
function clearAddress() {
|
||||||
|
addressModel.clear()
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadPlugin(name) {
|
function loadPlugin(name) {
|
||||||
|
@ -683,9 +678,9 @@ ApplicationWindow {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(initial){
|
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{
|
}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)
|
win := gui.createWindow(component)
|
||||||
|
|
||||||
go gui.setInitialBlockChain()
|
go gui.setInitialBlockChain()
|
||||||
|
go gui.loadAddressBook()
|
||||||
go gui.readPreviousTransactions()
|
go gui.readPreviousTransactions()
|
||||||
go gui.update()
|
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() {
|
func (gui *Gui) readPreviousTransactions() {
|
||||||
it := gui.txDb.Db().NewIterator(nil, nil)
|
it := gui.txDb.Db().NewIterator(nil, nil)
|
||||||
for it.Next() {
|
for it.Next() {
|
||||||
|
@ -191,10 +205,12 @@ func (gui *Gui) update() {
|
||||||
|
|
||||||
blockChan := make(chan ethutil.React, 1)
|
blockChan := make(chan ethutil.React, 1)
|
||||||
txChan := make(chan ethutil.React, 1)
|
txChan := make(chan ethutil.React, 1)
|
||||||
|
objectChan := make(chan ethutil.React, 1)
|
||||||
|
|
||||||
reactor.Subscribe("newBlock", blockChan)
|
reactor.Subscribe("newBlock", blockChan)
|
||||||
reactor.Subscribe("newTx:pre", txChan)
|
reactor.Subscribe("newTx:pre", txChan)
|
||||||
reactor.Subscribe("newTx:post", txChan)
|
reactor.Subscribe("newTx:post", txChan)
|
||||||
|
reactor.Subscribe("object:"+string(namereg), objectChan)
|
||||||
|
|
||||||
state := gui.eth.StateManager().TransState()
|
state := gui.eth.StateManager().TransState()
|
||||||
|
|
||||||
|
@ -241,6 +257,8 @@ func (gui *Gui) update() {
|
||||||
|
|
||||||
state.UpdateStateObject(object)
|
state.UpdateStateObject(object)
|
||||||
}
|
}
|
||||||
|
case <-objectChan:
|
||||||
|
gui.loadAddressBook()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue