Merge branch 'release/0.6.5' into develop

This commit is contained in:
obscuren 2014-09-22 19:34:07 +02:00
commit 9ac4e23b66
6 changed files with 203 additions and 14 deletions

View File

@ -248,7 +248,7 @@ Rectangle {
for(var i = 0; i < block.txs.length; i++) { for(var i = 0; i < block.txs.length; i++) {
transactionModel.insert(0, block.txs.get(i)) transactionModel.insert(0, block.txs.get(i))
} }
if(block.txs.get(0).data){ if(block.txs.length > 0 && block.txs.get(0).data){
popup.showContractData(block.txs.get(0)) popup.showContractData(block.txs.get(0))
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

View File

@ -0,0 +1,184 @@
import QtQuick 2.0
import QtQuick.Controls 1.0;
import QtQuick.Layouts 1.0;
import QtQuick.Dialogs 1.0;
import QtQuick.Window 2.1;
import QtQuick.Controls.Styles 1.1
Rectangle {
id: root
property var title: "JeffCoin"
property var iconSource: "./views/jeffcoin/jeff.png"
property var menuItem
property var filter
property var address: "fc0a9436890478bb9b1c6ed7455c2535366f4a99"
function insertTx(message, blockNumber) {
if(!message) return;
var from = message.from
var to = message.input.substr(24, 40)
var value = eth.fromNumber(message.input.substr(64, 64))
var me = eth.key().address;
if((to == me|| from == me) && message.input.length == 128) {
txModel.insert(0, {confirmations: blockNumber - message.number, from: from, to: to, value: value})
}
}
function setBalance() {
var jeffCoinAmount = eth.fromNumber(eth.storageAt(address, eth.key().address)) + " JΞF"
menuItem.secondaryTitle = jeffCoinAmount
balance.text = "<b>Balance</b>: " + jeffCoinAmount;
}
function onReady() {
setBalance()
filter = new ethx.watch({latest: -1, to: address})
filter.changed(function(messages) {
setBalance()
var blockNumber = eth.block(-1).number;
for(var i = 0; i < messages.length; i++) {
insertTx(messages.get(i), blockNumber);
}
});
var blockNumber = eth.block(-1).number;
var messages = filter.messages()
for(var i = messages.length-1; i >= 0; i--) {
var message = messages.get(i)
insertTx(message, blockNumber)
}
var chainChanged = ethx.watch("chain")
chainChanged.changed(function() {
for(var i = 0; i < txModel.count; i++) {
var entry = txModel.get(i);
entry.confirmations++;
}
});
}
function onDestroy() {
filter.uninstall()
}
ColumnLayout {
spacing: 10
y: 40
anchors.fill: parent
Text {
id: balance
text: "<b>Balance</b>: " + eth.fromNumber(eth.storageAt(address, eth.key().address)) + " JΞF"
font.pixelSize: 24
anchors {
horizontalCenter: parent.horizontalCenter
top: parent.top
topMargin: 20
}
}
Rectangle {
id: newTxPane
color: "#ececec"
border.color: "#cccccc"
border.width: 1
anchors {
top: balance.bottom
topMargin: 10
left: parent.left
leftMargin: 5
right: parent.right
rightMargin: 5
}
height: 100
RowLayout {
id: amountFields
spacing: 10
anchors {
top: parent.top
topMargin: 20
left: parent.left
leftMargin: 20
}
Text {
text: "JΞF "
}
// There's something off with the row layout where textfields won't listen to the width setting
Rectangle {
width: 50
height: 20
TextField {
id: txValue
width: parent.width
placeholderText: "0.00"
}
}
}
RowLayout {
id: toFields
spacing: 10
anchors {
top: amountFields.bottom
topMargin: 5
left: parent.left
leftMargin: 20
}
Text {
text: "To"
}
Rectangle {
width: 200
height: 20
TextField {
id: txTo
width: parent.width
placeholderText: "Address or name"
}
}
Button {
text: "Send"
onClicked: {
eth.transact({from: eth.key().privateKey, to:address, gas: "9000", gasPrice: "100000000000", data: ["0x"+txTo.text, txValue.text]})
}
}
}
}
Rectangle {
anchors {
left: parent.left
right: parent.right
top: newTxPane.bottom
topMargin: 10
bottom: parent.bottom
}
TableView {
id: txTableView
anchors.fill : parent
TableViewColumn{ role: "value" ; title: "Amount" ; width: 100 }
TableViewColumn{ role: "from" ; title: "From" ; width: 280 }
TableViewColumn{ role: "to" ; title: "To" ; width: 280 }
TableViewColumn{ role: "confirmations" ; title: "Confirmations" ; width: 100 }
model: ListModel {
id: txModel
Component.onCompleted: {
}
}
}
}
}
}

View File

@ -16,8 +16,8 @@ ApplicationWindow {
property var ethx : Eth.ethx property var ethx : Eth.ethx
property var web property var web
width: 1024 width: 1200
height: 750 height: 820
minimumHeight: 300 minimumHeight: 300
title: "Mist" title: "Mist"
@ -45,8 +45,9 @@ ApplicationWindow {
// Takes care of loading all default plugins // Takes care of loading all default plugins
Component.onCompleted: { Component.onCompleted: {
addPlugin("./views/wallet.qml", {noAdd: true, close: false, section: "ethereum", active: true}); var wallet = addPlugin("./views/wallet.qml", {noAdd: true, close: false, section: "ethereum", active: true});
root.web = addPlugin("./webapp.qml", {noAdd: true, close: false, section: "ethereum", active: true}); var browser = addPlugin("./webapp.qml", {noAdd: true, close: false, section: "ethereum", active: true});
root.web = browser.view;
addPlugin("./views/transaction.qml", {noAdd: true, close: false, section: "legacy"}); addPlugin("./views/transaction.qml", {noAdd: true, close: false, section: "legacy"});
addPlugin("./views/chain.qml", {noAdd: true, close: false, section: "legacy"}); addPlugin("./views/chain.qml", {noAdd: true, close: false, section: "legacy"});
@ -54,6 +55,10 @@ ApplicationWindow {
addPlugin("./views/pending_tx.qml", {noAdd: true, close: false, section: "legacy"}); addPlugin("./views/pending_tx.qml", {noAdd: true, close: false, section: "legacy"});
addPlugin("./views/javascript.qml", {noAdd: true, close: false, section: "legacy"}); addPlugin("./views/javascript.qml", {noAdd: true, close: false, section: "legacy"});
addPlugin("./views/jeffcoin/jeffcoin.qml", {noAdd: true, close: false, section: "apps"})
mainSplit.setView(wallet.view, wallet.menuItem);
// Call the ready handler // Call the ready handler
gui.done(); gui.done();
} }
@ -97,7 +102,7 @@ ApplicationWindow {
var view = mainView.createView(component, options) var view = mainView.createView(component, options)
var views = addViews(view, path, options) var views = addViews(view, path, options)
return views.view return views
} catch(e) { } catch(e) {
ethx.note(e) ethx.note(e)
} }
@ -374,8 +379,8 @@ ApplicationWindow {
********************/ ********************/
Rectangle { Rectangle {
id: menu id: menu
Layout.minimumWidth: 180 Layout.minimumWidth: 210
Layout.maximumWidth: 180 Layout.maximumWidth: 210
anchors.top: parent.top anchors.top: parent.top
color: "#ececec" color: "#ececec"
@ -394,7 +399,7 @@ ApplicationWindow {
sel.visible = on sel.visible = on
} }
width: 176 width: 206
height: 28 height: 28
color: "#00000000" color: "#00000000"
@ -801,9 +806,9 @@ ApplicationWindow {
anchors.left: aboutIcon.right anchors.left: aboutIcon.right
anchors.leftMargin: 10 anchors.leftMargin: 10
anchors.top: parent.top anchors.top: parent.top
anchors.topMargin: 40 anchors.topMargin: 30
font.pointSize: 12 font.pointSize: 12
text: "<h2>Mist - Amalthea</h2><br><h3>Development</h3>Jeffrey Wilcke<br>Viktor Trón<br>" text: "<h2>Mist (0.6.5)</h2><h4>Amalthea</h4><br><h3>Development</h3>Jeffrey Wilcke<br>Viktor Trón<br><h3>Building</h3>Maran Hidskes"
} }
} }
@ -867,7 +872,7 @@ ApplicationWindow {
pastPeers.append({text: ips.get(i)}) pastPeers.append({text: ips.get(i)})
} }
pastPeers.insert(0, {text: "54.76.56.74:30303"}) pastPeers.insert(0, {text: "poc-6.ethdev.com:30303"})
} }
} }

View File

@ -491,7 +491,7 @@ func (gui *Gui) setStatsPane() {
runtime.ReadMemStats(&memStats) runtime.ReadMemStats(&memStats)
statsPane := gui.getObjectByName("statsPane") statsPane := gui.getObjectByName("statsPane")
statsPane.Set("text", fmt.Sprintf(`###### Mist 0.6.4 (%s) ####### statsPane.Set("text", fmt.Sprintf(`###### Mist 0.6.5 (%s) #######
eth %d (p2p = %d) eth %d (p2p = %d)

View File

@ -12,7 +12,7 @@ import (
const ( const (
ClientIdentifier = "Mist" ClientIdentifier = "Mist"
Version = "0.6.7" Version = "0.6.5"
) )
var ethereum *eth.Ethereum var ethereum *eth.Ethereum