Merge branch 'release/0.6.7'
This commit is contained in:
commit
bd95fd770b
@ -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,16 +92,16 @@
|
|||||||
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 = "";
|
|
||||||
for(var i = 0; i < params.data.length; i++) {
|
|
||||||
data += params.data[i]
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
data = params.data;
|
var data = params.data;
|
||||||
|
for(var i = 0; i < params.data.length; i++) {
|
||||||
|
if(isPromise(params.data[i])) {
|
||||||
|
var promise = params.data[i];
|
||||||
|
var _i = i;
|
||||||
|
promises.push(promise.then(function(_arg) { params.data[_i] = _arg; }));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -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(){
|
||||||
@ -786,6 +786,7 @@ ApplicationWindow {
|
|||||||
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,6 +121,23 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
TableView {
|
||||||
|
id: logView
|
||||||
|
headerVisible: false
|
||||||
|
anchors {
|
||||||
|
right: logLevelSlider.left
|
||||||
|
left: parent.left
|
||||||
|
bottom: parent.bottom
|
||||||
|
top: parent.top
|
||||||
|
}
|
||||||
|
|
||||||
|
TableViewColumn{ role: "description" ; title: "log" }
|
||||||
|
|
||||||
|
model: logModel
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
Slider {
|
Slider {
|
||||||
id: logLevelSlider
|
id: logLevelSlider
|
||||||
value: gui.getLogLevelInt()
|
value: gui.getLogLevelInt()
|
||||||
@ -149,52 +166,6 @@ Rectangle {
|
|||||||
id: logModel
|
id: logModel
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
RowLayout {
|
|
||||||
id: logLayout
|
|
||||||
width: parent.width
|
|
||||||
height: 200
|
|
||||||
anchors.bottom: parent.bottom
|
|
||||||
TableView {
|
|
||||||
id: logView
|
|
||||||
headerVisible: false
|
|
||||||
anchors {
|
|
||||||
right: logLevelSlider.left
|
|
||||||
left: parent.left
|
|
||||||
bottom: parent.bottom
|
|
||||||
top: parent.top
|
|
||||||
}
|
|
||||||
|
|
||||||
TableViewColumn{ role: "description" ; title: "log" }
|
|
||||||
|
|
||||||
model: logModel
|
|
||||||
}
|
|
||||||
|
|
||||||
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)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
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…
Reference in New Issue
Block a user