From bde3ff16ad98cb4ab0befc899f7f0584d21ff9a4 Mon Sep 17 00:00:00 2001
From: obscuren <geffobscura@gmail.com>
Date: Fri, 13 Feb 2015 16:02:37 +0100
Subject: merge

---
 cmd/mist/assets/examples/coin.html |   6 +
 cmd/mist/assets/qml/main.qml       | 869 +------------------------------------
 core/block_processor.go            |  13 -
 core/manager.go                    |   1 -
 eth/backend.go                     |  21 +-
 5 files changed, 17 insertions(+), 893 deletions(-)

diff --git a/cmd/mist/assets/examples/coin.html b/cmd/mist/assets/examples/coin.html
index 546c6f13f..99e0c7643 100644
--- a/cmd/mist/assets/examples/coin.html
+++ b/cmd/mist/assets/examples/coin.html
@@ -79,6 +79,12 @@
 	contract.received({from: eth.coinbase}).changed(function() {
 		refresh();
 	});
+
+	var ev = contract.SingleTransact({})
+	ev.watch(function(log) {
+	someElement.innerHTML += "tnaheousnthaoeu";
+	});
+	
 	eth.watch('chain').changed(function() {
 		refresh();
 	});
diff --git a/cmd/mist/assets/qml/main.qml b/cmd/mist/assets/qml/main.qml
index 8f9a2d3cc..2b56b7236 100644
--- a/cmd/mist/assets/qml/main.qml
+++ b/cmd/mist/assets/qml/main.qml
@@ -11,7 +11,6 @@ import "../ext/http.js" as Http
 
 
 ApplicationWindow {
-<<<<<<< HEAD
     id: root
     
     //flags: Qt.FramelessWindowHint
@@ -1102,870 +1101,4 @@ ApplicationWindow {
                  addrField.focus = true
              }
          }
-     }
-=======
-	id: root
-
-	property var ethx : Eth.ethx
-
-	width: 1200
-	height: 820
-	minimumWidth: 300
-
-	title: "Mist"
-
-	TextField {
-		id: copyElementHax
-		visible: false
-	}
-
-	function copyToClipboard(text) {
-		copyElementHax.text = text
-		copyElementHax.selectAll()
-		copyElementHax.copy()
-	}
-
-	// Takes care of loading all default plugins
-	Component.onCompleted: {
-		var wallet = addPlugin("./views/wallet.qml", {noAdd: true, close: false, section: "ethereum", active: true});
-		addPlugin("./views/miner.qml", {noAdd: true, close: false, section: "ethereum", active: true});
-
-		addPlugin("./views/transaction.qml", {noAdd: true, close: false, section: "legacy"});
-		addPlugin("./views/whisper.qml", {noAdd: true, close: false, section: "legacy"});
-		addPlugin("./views/chain.qml", {noAdd: true, close: false, section: "legacy"});
-		addPlugin("./views/pending_tx.qml", {noAdd: true, close: false, section: "legacy"});
-		addPlugin("./views/info.qml", {noAdd: true, close: false, section: "legacy"});
-
-		mainSplit.setView(wallet.view, wallet.menuItem);
-
-		newBrowserTab(eth.assetPath("html/home.html"));
-
-		// Command setup
-		gui.sendCommand(0)
-	}
-
-	function activeView(view, menuItem) {
-		mainSplit.setView(view, menuItem)
-		if (view.hideUrl) {
-			urlPane.visible = false;
-			mainView.anchors.top = rootView.top
-		} else {
-			urlPane.visible = true;
-			mainView.anchors.top = divider.bottom
-		}
-	}
-
-	function addViews(view, path, options) {
-		var views = mainSplit.addComponent(view, options)
-		views.menuItem.path = path
-
-		mainSplit.views.push(views);
-
-		if(!options.noAdd) {
-			gui.addPlugin(path)
-		}
-
-		return views
-	}
-
-	function addPlugin(path, options) {
-		try {
-			if(typeof(path) === "string" && /^https?/.test(path)) {
-				console.log('load http')
-				Http.request(path, function(o) {
-					if(o.status === 200) {
-						var view = Qt.createQmlObject(o.responseText, mainView, path)
-						addViews(view, path, options)
-					}
-				})
-
-				return
-			}
-
-			var component = Qt.createComponent(path);
-			if(component.status != Component.Ready) {
-				if(component.status == Component.Error) {
-					ethx.note("error: ", component.errorString());
-				}
-
-				return
-			}
-
-			var view = mainView.createView(component, options)
-			var views = addViews(view, path, options)
-
-			return views
-		} catch(e) {
-			console.log(e)
-		}
-	}
-
-	function newBrowserTab(url) {
-		var window = addPlugin("./views/browser.qml", {noAdd: true, close: true, section: "apps", active: true});
-		window.view.url = url;
-		window.menuItem.title = "Mist";
-		activeView(window.view, window.menuItem);
-	}
-
-	menuBar: MenuBar {
-		Menu {
-			title: "File"
-			MenuItem {
-				text: "Import App"
-				shortcut: "Ctrl+o"
-				onTriggered: {
-					generalFileDialog.show(true, importApp)
-				}
-			}
-
-			MenuItem {
-				text: "Add plugin"
-				onTriggered: {
-					generalFileDialog.show(true, function(path) {
-						addPlugin(path, {close: true, section: "apps"})
-					})
-				}
-			}
-
-			MenuItem {
-				text: "New tab"
-				shortcut: "Ctrl+t"
-				onTriggered: {
-					newBrowserTab("about:blank");
-				}
-			}
-
-			MenuSeparator {}
-
-			MenuItem {
-				text: "Import key"
-				shortcut: "Ctrl+i"
-				onTriggered: {
-					generalFileDialog.show(true, function(path) {
-						gui.importKey(path)
-					})
-				}
-			}
-
-			MenuItem {
-				text: "Export keys"
-				shortcut: "Ctrl+e"
-				onTriggered: {
-					generalFileDialog.show(false, function(path) {
-					})
-				}
-			}
-
-		}
-
-		Menu {
-			title: "Developer"
-			MenuItem {
-				iconSource: "../icecream.png"
-				text: "Debugger"
-				shortcut: "Ctrl+d"
-				onTriggered: eth.startDebugger()
-			}
-
-			MenuItem {
-				text: "Import Tx"
-				onTriggered: {
-					txImportDialog.visible = true
-				}
-			}
-
-			MenuItem {
-				text: "Run JS file"
-				onTriggered: {
-					generalFileDialog.show(true, function(path) {
-						eth.evalJavascriptFile(path)
-					})
-				}
-			}
-
-			MenuItem {
-				text: "Dump state"
-				onTriggered: {
-					generalFileDialog.show(false, function(path) {
-						// Empty hash for latest
-						gui.dumpState("", path)
-					})
-				}
-			}
-
-			MenuSeparator {}
-		}
-
-		Menu {
-			title: "Network"
-			MenuItem {
-				text: "Connect to Node"
-				shortcut: "Ctrl+p"
-				onTriggered: {
-					addPeerWin.visible = true
-				}
-			}
-			MenuItem {
-				text: "Show Peers"
-				shortcut: "Ctrl+e"
-				onTriggered: {
-					peerWindow.visible = true
-				}
-			}
-		}
-
-		Menu {
-			title: "Help"
-			MenuItem {
-				text: "About"
-				onTriggered: {
-					aboutWin.visible = true
-				}
-			}
-		}
-
-		Menu {
-			title: "GLOBAL SHORTCUTS"
-			visible: false
-			MenuItem {
-				visible: false
-				shortcut: "Ctrl+l"
-				onTriggered: {
-					url.focus = true
-				}
-			}
-		}
-	}
-
-	statusBar: StatusBar {
-		//height: 32
-		id: statusBar
-		Label {
-			//y: 6
-			id: walletValueLabel
-
-			font.pixelSize: 10
-			styleColor: "#797979"
-		}
-
-		Label {
-			//y: 6
-			objectName: "miningLabel"
-			visible: true
-			font.pixelSize: 10
-			anchors.right: lastBlockLabel.left
-			anchors.rightMargin: 5
-		}
-
-		Label {
-			//y: 6
-			id: lastBlockLabel
-			objectName: "lastBlockLabel"
-			visible: true
-			text: ""
-			font.pixelSize: 10
-			anchors.right: peerGroup.left
-			anchors.rightMargin: 5
-		}
-
-		ProgressBar {
-			visible: false
-			id: downloadIndicator
-			value: 0
-			objectName: "downloadIndicator"
-			y: -4
-			x: statusBar.width / 2 - this.width / 2
-			width: 160
-		}
-
-		Label {
-			visible: false
-			objectName: "downloadLabel"
-			//y: 7
-			anchors.left: downloadIndicator.right
-			anchors.leftMargin: 5
-			font.pixelSize: 10
-			text: "0 / 0"
-		}
-
-
-		RowLayout {
-			id: peerGroup
-			//y: 7
-			anchors.right: parent.right
-			MouseArea {
-				onDoubleClicked:  peerWindow.visible = true
-				anchors.fill: parent
-			}
-
-			Label {
-				id: peerLabel
-				font.pixelSize: 10
-				text: "0 / 0"
-			}
-		}
-	}
-
-
-	property var blockModel: ListModel {
-		id: blockModel
-	}
-
-	SplitView {
-		property var views: [];
-
-		id: mainSplit
-		anchors.fill: parent
-		resizing: false
-
-		function setView(view, menu) {
-			for(var i = 0; i < views.length; i++) {
-				views[i].view.visible = false
-				views[i].menuItem.setSelection(false)
-			}
-			view.visible = true
-			menu.setSelection(true)
-		}
-
-		function addComponent(view, options) {
-			view.visible = false
-			view.anchors.fill = mainView
-
-			var menuItem = menu.createMenuItem(view, options);
-			if( view.hasOwnProperty("menuItem") ) {
-				view.menuItem = menuItem;
-			}
-
-			if( view.hasOwnProperty("onReady") ) {
-				view.onReady.call(view)
-			}
-
-			if( options.active ) {
-				setView(view, menuItem)
-			}
-
-
-			return {view: view, menuItem: menuItem}
-		}
-
-		/*********************
-		 * Main menu.
-		 ********************/
-		 Rectangle {
-			 id: menu
-			 Layout.minimumWidth: 210
-			 Layout.maximumWidth: 210
-			 anchors.top: parent.top
-			 color: "#ececec"
-
-			 Component {
-				 id: menuItemTemplate
-				 Rectangle {
-					 id: menuItem
-					 property var view;
-					 property var path;
-					 property var closable;
-
-					 property alias title: label.text
-					 property alias icon: icon.source
-					 property alias secondaryTitle: secondary.text
-					 function setSelection(on) {
-						 sel.visible = on
-					 }
-
-					 width: 206
-					 height: 28
-					 color: "#00000000"
-
-					 anchors {
-						 left: parent.left
-						 leftMargin: 4
-					 }
-
-					 Rectangle {
-						 id: sel
-						 visible: false
-						 anchors.fill: parent
-						 color: "#00000000"
-						 Rectangle {
-							 id: r
-							 anchors.fill: parent
-							 border.color: "#CCCCCC"
-							 border.width: 1
-							 radius: 5
-							 color: "#FFFFFFFF"
-						 }
-						 Rectangle {
-							 anchors {
-								 top: r.top
-								 bottom: r.bottom
-								 right: r.right
-							 }
-							 width: 10
-							 color: "#FFFFFFFF"
-
-							 Rectangle {
-								 anchors {
-									 left: parent.left
-									 right: parent.right
-									 top: parent.top
-								 }
-								 height: 1
-								 color: "#CCCCCC"
-							 }
-
-							 Rectangle {
-								 anchors {
-									 left: parent.left
-									 right: parent.right
-									 bottom: parent.bottom
-								 }
-								 height: 1
-								 color: "#CCCCCC"
-							 }
-						 }
-					 }
-
-					 MouseArea {
-						 anchors.fill: parent
-						 onClicked: {
-							 activeView(view, menuItem);
-						 }
-					 }
-
-					 Image {
-						 id: icon
-						 height: 20
-						 width: 20
-						 anchors {
-							 left: parent.left
-							 verticalCenter: parent.verticalCenter
-							 leftMargin: 3
-						 }
-						 MouseArea {
-							 anchors.fill: parent
-							 onClicked: {
-								 menuItem.closeApp()
-							 }
-						 }
-					 }
-
-					 Text {
-						 id: label
-						 anchors {
-							 left: icon.right
-							 verticalCenter: parent.verticalCenter
-							 leftMargin: 3
-						 }
-
-						 color: "#0D0A01"
-						 font.pixelSize: 12
-					 }
-
-					 Text {
-						 id: secondary
-						 anchors {
-							 right: parent.right
-							 rightMargin: 8
-							 verticalCenter: parent.verticalCenter
-						 }
-						 color: "#AEADBE"
-						 font.pixelSize: 12
-					 }
-
-
-					 function closeApp() {
-						 if(!this.closable) { return; }
-
-						 if(this.view.hasOwnProperty("onDestroy")) {
-							 this.view.onDestroy.call(this.view)
-						 }
-
-						 this.view.destroy()
-						 this.destroy()
-						 for (var i = 0; i < mainSplit.views.length; i++) {
-							 var view = mainSplit.views[i];
-							 if (view.menuItem === this) {
-								 mainSplit.views.splice(i, 1);
-								 break;
-							 }
-						 }
-						 gui.removePlugin(this.path)
-						 activeView(mainSplit.views[0].view, mainSplit.views[0].menuItem);
-					 }
-				 }
-			 }
-
-			 function createMenuItem(view, options) {
-				 if(options === undefined) {
-					 options = {};
-				 }
-
-				 var section;
-				 switch(options.section) {
-					 case "ethereum":
-					 section = menuDefault;
-					 break;
-					 case "legacy":
-					 section = menuLegacy;
-					 break;
-					 default:
-					 section = menuApps;
-					 break;
-				 }
-
-				 var comp = menuItemTemplate.createObject(section)
-				 comp.view = view
-				 comp.title = view.title
-
-				 if(view.hasOwnProperty("iconSource")) {
-					 comp.icon = view.iconSource;
-				 }
-				 comp.closable = options.close;
-
-				 return comp
-			 }
-
-			 ColumnLayout {
-				 id: menuColumn
-				 y: 10
-				 width: parent.width
-				 anchors.left: parent.left
-				 anchors.right: parent.right
-				 spacing: 3
-
-				 Text {
-					 text: "ETHEREUM"
-					 font.bold: true
-					 anchors {
-						 left: parent.left
-						 leftMargin: 5
-					 }
-					 color: "#888888"
-				 }
-
-				 ColumnLayout {
-					 id: menuDefault
-					 spacing: 3
-					 anchors {
-						 left: parent.left
-						 right: parent.right
-					 }
-				 }
-
-
-				 Text {
-					 text: "NET"
-					 font.bold: true
-					 anchors {
-						 left: parent.left
-						 leftMargin: 5
-					 }
-					 color: "#888888"
-				 }
-
-				 ColumnLayout {
-					 id: menuApps
-					 spacing: 3
-					 anchors {
-						 left: parent.left
-						 right: parent.right
-					 }
-				 }
-
-				 Text {
-					 text: "DEBUG"
-					 font.bold: true
-					 anchors {
-						 left: parent.left
-						 leftMargin: 5
-					 }
-					 color: "#888888"
-				 }
-
-				 ColumnLayout {
-					 id: menuLegacy
-					 spacing: 3
-					 anchors {
-						 left: parent.left
-						 right: parent.right
-					 }
-				 }
-			 }
-		 }
-
-		 /*********************
-		  * Main view
-		  ********************/
-		  Rectangle {
-			  id: rootView
-			  anchors.right: parent.right
-			  anchors.left: menu.right
-			  anchors.bottom: parent.bottom
-			  anchors.top: parent.top
-			  color: "#00000000"
-
-			  Rectangle {
-				  id: urlPane
-				  height: 40
-				  color: "#00000000"
-				  anchors {
-					  left: parent.left
-					  right: parent.right
-					  leftMargin: 5
-					  rightMargin: 5
-					  top: parent.top
-					  topMargin: 5
-				  }
-				  TextField {
-					  id: url
-					  objectName: "url"
-					  placeholderText: "DApp URL"
-					  anchors {
-						  left: parent.left
-						  right: parent.right
-						  top: parent.top
-						  topMargin: 5
-						  rightMargin: 5
-						  leftMargin: 5
-					  }
-
-					  Keys.onReturnPressed: {
-						  if(/^https?/.test(this.text)) {
-							  newBrowserTab(this.text);
-						  } else {
-							  addPlugin(this.text, {close: true, section: "apps"})
-						  }
-					  }
-				  }
-
-			  }
-
-			  // Border
-			  Rectangle {
-				  id: divider
-				  anchors {
-					  left: parent.left
-					  right: parent.right
-					  top: urlPane.bottom
-				  }
-				  z: -1
-				  height: 1
-				  color: "#CCCCCC"
-			  }
-
-			  Rectangle {
-				  id: mainView
-				  color: "#00000000"
-				  anchors.right: parent.right
-				  anchors.left: parent.left
-				  anchors.bottom: parent.bottom
-				  anchors.top: divider.bottom
-
-				  function createView(component) {
-					  var view = component.createObject(mainView)
-
-					  return view;
-				  }
-			  }
-		  }
-	  }
-
-
-	  /******************
-	   * Dialogs
-	   *****************/
-	   FileDialog {
-		   id: generalFileDialog
-		   property var callback;
-		   onAccepted: {
-			   var path = this.fileUrl.toString();
-			   callback.call(this, path);
-		   }
-
-		   function show(selectExisting, callback) {
-			   generalFileDialog.callback = callback;
-			   generalFileDialog.selectExisting = selectExisting;
-
-			   this.open();
-		   }
-	   }
-
-
-	   /******************
-	    * Wallet functions
-	    *****************/
-	    function importApp(path) {
-		    var ext = path.split('.').pop()
-		    if(ext == "html" || ext == "htm") {
-			    eth.openHtml(path)
-		    }else if(ext == "qml"){
-			    addPlugin(path, {close: true, section: "apps"})
-		    }
-	    }
-
-
-	    function setWalletValue(value) {
-		    walletValueLabel.text = value
-	    }
-
-	    function loadPlugin(name) {
-		    console.log("Loading plugin" + name)
-		    var view = mainView.addPlugin(name)
-	    }
-
-	    function setPeers(text) {
-		    peerLabel.text = text
-	    }
-
-	    function addPeer(peer) {
-		    // 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, caps: peer.caps})
-	    }
-
-	    function resetPeers(){
-		    peerModel.clear()
-	    }
-
-	    function timeAgo(unixTs){
-		    var lapsed = (Date.now() - new Date(unixTs*1000)) / 1000
-		    return  (lapsed + " seconds ago")
-	    }
-
-	    function convertToPretty(unixTs){
-		    var a = new Date(unixTs*1000);
-		    var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
-		    var year = a.getFullYear();
-		    var month = months[a.getMonth()];
-		    var date = a.getDate();
-		    var hour = a.getHours();
-		    var min = a.getMinutes();
-		    var sec = a.getSeconds();
-		    var time = date+' '+month+' '+year+' '+hour+':'+min+':'+sec ;
-		    return time;
-	    }
-
-	    /**********************
-	     * Windows
-	     *********************/
-	     Window {
-		     id: peerWindow
-		     //flags: Qt.CustomizeWindowHint | Qt.Tool | Qt.WindowCloseButtonHint
-		     height: 200
-		     width: 700
-		     Rectangle {
-			     anchors.fill: parent
-			     property var peerModel: ListModel {
-				     id: peerModel
-			     }
-			     TableView {
-				     anchors.fill: parent
-				     id: peerTable
-				     model: peerModel
-				     TableViewColumn{width: 200; role: "ip" ; title: "IP" }
-				     TableViewColumn{width: 260; role: "version" ; title: "Version" }
-				     TableViewColumn{width: 180;  role: "caps" ; title: "Capabilities" }
-			     }
-		     }
-	     }
-
-	     Window {
-		     id: aboutWin
-		     visible: false
-		     title: "About"
-		     minimumWidth: 350
-		     maximumWidth: 350
-		     maximumHeight: 280
-		     minimumHeight: 280
-
-		     Image {
-			     id: aboutIcon
-			     height: 150
-			     width: 150
-			     fillMode: Image.PreserveAspectFit
-			     smooth: true
-			     source: "../facet.png"
-			     x: 10
-			     y: 30
-		     }
-
-		     Text {
-			     anchors.left: aboutIcon.right
-			     anchors.leftMargin: 10
-			     anchors.top: parent.top
-			     anchors.topMargin: 30
-			     font.pointSize: 12
-			     text: "<h2>Mist (0.7.10)</h2><br><h3>Development</h3>Jeffrey Wilcke<br>Viktor TrĂ³n<br>Felix Lange<br>Taylor Gerring<br>Daniel Nagy<br><h3>UX</h3>Alex van de Sande<br>"
-		     }
-	     }
-
-	     Window {
-		     id: txImportDialog
-		     minimumWidth: 270
-		     maximumWidth: 270
-		     maximumHeight: 50
-		     minimumHeight: 50
-		     TextField {
-			     id: txImportField
-			     width: 170
-			     anchors.verticalCenter: parent.verticalCenter
-			     anchors.left: parent.left
-			     anchors.leftMargin: 10
-			     onAccepted: {
-			     }
-		     }
-		     Button {
-			     anchors.left: txImportField.right
-			     anchors.verticalCenter: parent.verticalCenter
-			     anchors.leftMargin: 5
-			     text: "Import"
-			     onClicked: {
-				     eth.importTx(txImportField.text)
-				     txImportField.visible = false
-			     }
-		     }
-		     Component.onCompleted: {
-			     addrField.focus = true
-		     }
-	     }
-
-	     Window {
-		     id: addPeerWin
-		     visible: false
-		     minimumWidth: 400
-		     maximumWidth: 400
-		     maximumHeight: 50
-		     minimumHeight: 50
-		     title: "Connect to Node"
-
-		     TextField {
-			     id: addrField
-			     placeholderText: "enode://<hex node id>:<IP address>:<port>"
-			     anchors.verticalCenter: parent.verticalCenter
-			     anchors.left: parent.left
-			     anchors.right: addPeerButton.left
-			     anchors.leftMargin: 10
-			     anchors.rightMargin: 10
-			     onAccepted: {
-				     eth.connectToPeer(addrField.text)
-				     addPeerWin.visible = false
-			     }
-		     }
-
-		     Button {
-			     id: addPeerButton
-			     anchors.right: parent.right
-			     anchors.verticalCenter: parent.verticalCenter
-			     anchors.rightMargin: 10
-			     text: "Connect"
-			     onClicked: {
-				     eth.connectToPeer(addrField.text)
-				     addPeerWin.visible = false
-			     }
-		     }
-		     Component.onCompleted: {
-			     addrField.focus = true
-		     }
-	     }
-     }
->>>>>>> 32a9c0ca809508c1648b8f44f3e09725af7a80d3
+     }
\ No newline at end of file
diff --git a/core/block_processor.go b/core/block_processor.go
index 8f5ee52b7..c360273da 100644
--- a/core/block_processor.go
+++ b/core/block_processor.go
@@ -23,19 +23,6 @@ type PendingBlockEvent struct {
 
 var statelogger = logger.NewLogger("BLOCK")
 
-type EthManager interface {
-	BlockProcessor() *BlockProcessor
-	ChainManager() *ChainManager
-	TxPool() *TxPool
-	PeerCount() int
-	IsMining() bool
-	IsListening() bool
-	Peers() []*p2p.Peer
-	KeyManager() *crypto.KeyManager
-	Db() ethutil.Database
-	EventMux() *event.TypeMux
-}
-
 type BlockProcessor struct {
 	db ethutil.Database
 	// Mutex for locking the block processor. Blocks can only be handled one at a time
diff --git a/core/manager.go b/core/manager.go
index 4671573b1..f960fc5f0 100644
--- a/core/manager.go
+++ b/core/manager.go
@@ -16,7 +16,6 @@ type EthManager interface {
 	IsListening() bool
 	Peers() []*p2p.Peer
 	KeyManager() *crypto.KeyManager
-	ClientIdentity() p2p.ClientIdentity
 	Db() ethutil.Database
 	EventMux() *event.TypeMux
 }
diff --git a/eth/backend.go b/eth/backend.go
index 684f15136..28a065066 100644
--- a/eth/backend.go
+++ b/eth/backend.go
@@ -20,14 +20,16 @@ import (
 )
 
 var logger = ethlogger.NewLogger("SERV")
+var jsonlogger = ethlogger.NewJsonLogger()
 
 type Config struct {
-	Name     string
-	KeyStore string
-	DataDir  string
-	LogFile  string
-	LogLevel int
-	KeyRing  string
+	Name      string
+	KeyStore  string
+	DataDir   string
+	LogFile   string
+	LogLevel  int
+	KeyRing   string
+	LogFormat string
 
 	MaxPeers int
 	Port     string
@@ -47,9 +49,6 @@ type Config struct {
 	KeyManager *crypto.KeyManager
 }
 
-var logger = ethlogger.NewLogger("SERV")
-var jsonlogger = ethlogger.NewJsonLogger()
-
 func (cfg *Config) parseBootNodes() []*discover.Node {
 	var ns []*discover.Node
 	for _, url := range strings.Split(cfg.BootNodes, " ") {
@@ -240,10 +239,10 @@ func (s *Ethereum) Coinbase() []byte {
 // Start the ethereum
 func (s *Ethereum) Start() error {
 	jsonlogger.LogJson(&ethlogger.LogStarting{
-		ClientString:    s.ClientIdentity().String(),
+		ClientString:    s.net.Name,
 		Coinbase:        ethutil.Bytes2Hex(s.KeyManager().Address()),
 		ProtocolVersion: ProtocolVersion,
-		LogEvent:        ethlogger.LogEvent{Guid: ethutil.Bytes2Hex(s.ClientIdentity().Pubkey())},
+		LogEvent:        ethlogger.LogEvent{Guid: ethutil.Bytes2Hex(crypto.FromECDSAPub(&s.net.PrivateKey.PublicKey))},
 	})
 
 	err := s.net.Start()
-- 
cgit v1.2.3