Merge branch 'release/0.6.7'

pull/137/head v0.6.7
obscuren 10 years ago
commit bd95fd770b
  1. 2
      README.md
  2. 2
      ethereum/main.go
  3. 2
      mist/assets/debugger/debugger.qml
  4. 25
      mist/assets/ext/html_messaging.js
  5. 5
      mist/assets/qml/main.qml
  6. 41
      mist/assets/qml/views/info.qml
  7. 8
      mist/assets/qml/views/jeffcoin/jeffcoin.qml
  8. 4
      mist/assets/qml/views/wallet.qml
  9. 4
      mist/gui.go
  10. 2
      mist/main.go
  11. 26
      mist/ui_lib.go

@ -7,7 +7,7 @@ Status](http://cpt-obvious.ethercasts.com:8010/buildstatusimage?builder=go-ether
Ethereum Go Client © 2014 Jeffrey Wilcke. Ethereum Go Client © 2014 Jeffrey Wilcke.
Current state: Proof of Concept 0.6.6. Current state: Proof of Concept 0.6.7.
For the development package please see the [eth-go package](https://github.com/ethereum/eth-go). For the development package please see the [eth-go package](https://github.com/ethereum/eth-go).

@ -13,7 +13,7 @@ import (
const ( const (
ClientIdentifier = "Ethereum(G)" ClientIdentifier = "Ethereum(G)"
Version = "0.6.6" Version = "0.6.7"
) )
var logger = ethlog.NewLogger("CLI") var logger = ethlog.NewLogger("CLI")

@ -357,7 +357,7 @@ ApplicationWindow {
anchors.right: parent.right anchors.right: parent.right
model: ListModel { model: ListModel {
ListElement { text: "Snippets" ; value: "" } ListElement { text: "Snippets" ; value: "" }
ListElement { text: "Call Contract" ; value: "var[2] in;\nvar ret;\n\nin[0] = \"arg1\"\nin[1] = 0xdeadbeef\n\nvar success = call(0x0c542ddea93dae0c2fcb2cf175f03ad80d6be9a0, 0, 7000, in, ret)\n\nreturn ret" } ListElement { text: "Call Contract" ; value: "var[2] in = { \"arg1\", 0xdeadbeef };\nvar ret;\n\nvar success = call(0x0c542ddea93dae0c2fcb2cf175f03ad80d6be9a0, 0, 7000, in, ret)\n\nreturn ret" }
} }
onCurrentIndexChanged: { onCurrentIndexChanged: {
if(currentIndex != 0) { if(currentIndex != 0) {

@ -92,18 +92,18 @@
promises.push(params.from.then(function(_from) { params.from = _from; })); promises.push(params.from.then(function(_from) { params.from = _from; }));
} }
if(isPromise(params.data)) { if(typeof params.data !== "object" || isPromise(params.data)) {
promises.push(params.data.then(function(_code) { params.data = _code; })); params.data = [params.data]
} else { }
if(typeof params.data === "object") {
data = ""; var data = params.data;
for(var i = 0; i < params.data.length; i++) { for(var i = 0; i < params.data.length; i++) {
data += params.data[i] if(isPromise(params.data[i])) {
} var promise = params.data[i];
} else { var _i = i;
data = params.data; promises.push(promise.then(function(_arg) { params.data[_i] = _arg; }));
} }
} }
// Make sure everything is string // Make sure everything is string
var fields = ["value", "gas", "gasPrice"]; var fields = ["value", "gas", "gasPrice"];
@ -117,6 +117,7 @@
// Load promises then call the last "transact". // Load promises then call the last "transact".
return Q.all(promises).then(function() { return Q.all(promises).then(function() {
return new Promise(function(resolve, reject) { return new Promise(function(resolve, reject) {
params.data = params.data.join("");
postData({call: "transact", args: params}, function(data) { postData({call: "transact", args: params}, function(data) {
if(data[1]) if(data[1])
reject(data[0]); reject(data[0]);

@ -739,7 +739,7 @@ ApplicationWindow {
function addPeer(peer) { function addPeer(peer) {
// We could just append the whole peer object but it cries if you try to alter them // We could just append the whole peer object but it cries if you try to alter them
peerModel.append({ip: peer.ip, port: peer.port, lastResponse:timeAgo(peer.lastSend), latency: peer.latency, version: peer.version}) peerModel.append({ip: peer.ip, port: peer.port, lastResponse:timeAgo(peer.lastSend), latency: peer.latency, version: peer.version, caps: peer.caps})
} }
function resetPeers(){ function resetPeers(){
@ -782,10 +782,11 @@ ApplicationWindow {
id: peerTable id: peerTable
model: peerModel model: peerModel
TableViewColumn{width: 100; role: "ip" ; title: "IP" } TableViewColumn{width: 100; role: "ip" ; title: "IP" }
TableViewColumn{width: 60; role: "port" ; title: "Port" } TableViewColumn{width: 60; role: "port" ; title: "Port" }
TableViewColumn{width: 140; role: "lastResponse"; title: "Last event" } TableViewColumn{width: 140; role: "lastResponse"; title: "Last event" }
TableViewColumn{width: 100; role: "latency"; title: "Latency" } TableViewColumn{width: 100; role: "latency"; title: "Latency" }
TableViewColumn{width: 260; role: "version" ; title: "Version" } TableViewColumn{width: 260; role: "version" ; title: "Version" }
TableViewColumn{width: 80; role: "caps" ; title: "Capabilities" }
} }
} }
} }

@ -121,40 +121,7 @@ Rectangle {
} }
} }
Slider { /*
id: logLevelSlider
value: gui.getLogLevelInt()
anchors {
right: parent.right
top: parent.top
bottom: parent.bottom
rightMargin: 5
leftMargin: 5
topMargin: 5
bottomMargin: 5
}
orientation: Qt.Vertical
maximumValue: 5
stepSize: 1
onValueChanged: {
gui.setLogLevel(value)
}
}
}
property var logModel: ListModel {
id: logModel
}
/*
RowLayout {
id: logLayout
width: parent.width
height: 200
anchors.bottom: parent.bottom
TableView { TableView {
id: logView id: logView
headerVisible: false headerVisible: false
@ -169,6 +136,7 @@ Rectangle {
model: logModel model: logModel
} }
*/
Slider { Slider {
id: logLevelSlider id: logLevelSlider
@ -193,7 +161,10 @@ Rectangle {
} }
} }
} }
*/
property var logModel: ListModel {
id: logModel
}
function addDebugMessage(message){ function addDebugMessage(message){
debuggerLog.append({value: message}) debuggerLog.append({value: message})

@ -22,6 +22,8 @@ Rectangle {
var me = eth.key().address; var me = eth.key().address;
if((to == me|| from == me) && message.input.length == 128) { if((to == me|| from == me) && message.input.length == 128) {
var to = eth.lookupName(to)
var from = eth.lookupName(from)
txModel.insert(0, {confirmations: blockNumber - message.number, from: from, to: to, value: value}) txModel.insert(0, {confirmations: blockNumber - message.number, from: from, to: to, value: value})
} }
} }
@ -151,7 +153,11 @@ Rectangle {
Button { Button {
text: "Send" text: "Send"
onClicked: { onClicked: {
eth.transact({from: eth.key().privateKey, to:address, gas: "9000", gasPrice: "10000000000000", data: ["0x"+txTo.text, txValue.text]}) var lookup = eth.lookupAddress(address)
if(lookup.length == 0)
lookup = address
eth.transact({from: eth.key().privateKey, to:lookup, gas: "9000", gasPrice: "10000000000000", data: ["0x"+txTo.text, txValue.text]})
} }
} }
} }

@ -160,7 +160,9 @@ Rectangle {
function addTxs(messages) { function addTxs(messages) {
for(var i = 0; i < messages.length; i++) { for(var i = 0; i < messages.length; i++) {
var message = messages.get(i); var message = messages.get(i);
txModel.insert(0, {num: txModel.count, from: message.from, to: message.to, value: eth.numberToHuman(message.value)}) var to = eth.lookupName(message.to);
var from = eth.lookupName(message.from);
txModel.insert(0, {num: txModel.count, from: from, to: to, value: eth.numberToHuman(message.value)})
} }
} }
} }

@ -172,7 +172,7 @@ func (gui *Gui) Stop() {
} }
func (gui *Gui) showWallet(context *qml.Context) (*qml.Window, error) { func (gui *Gui) showWallet(context *qml.Context) (*qml.Window, error) {
component, err := gui.engine.LoadFile(gui.uiLib.AssetPath("qml/wallet.qml")) component, err := gui.engine.LoadFile(gui.uiLib.AssetPath("qml/main.qml"))
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -500,7 +500,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.5 (%s) ####### statsPane.Set("text", fmt.Sprintf(`###### Mist 0.6.7 (%s) #######
eth %d (p2p = %d) eth %d (p2p = %d)

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

@ -71,6 +71,32 @@ func (self *UiLib) LookupDomain(domain string) string {
} }
} }
func (self *UiLib) LookupName(addr string) string {
var (
nameReg = self.World().Config().Get("NameReg")
lookup = nameReg.Storage(ethutil.Hex2Bytes(addr))
)
if lookup.Len() != 0 {
return strings.Trim(lookup.Str(), "\x00")
}
return addr
}
func (self *UiLib) LookupAddress(name string) string {
var (
nameReg = self.World().Config().Get("NameReg")
lookup = nameReg.Storage(ethutil.RightPadBytes([]byte(name), 32))
)
if lookup.Len() != 0 {
return ethutil.Bytes2Hex(lookup.Bytes())
}
return ""
}
func (self *UiLib) PastPeers() *ethutil.List { func (self *UiLib) PastPeers() *ethutil.List {
return ethutil.NewList(eth.PastPeers()) return ethutil.NewList(eth.PastPeers())
} }

Loading…
Cancel
Save