aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/mist/assets
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/mist/assets')
-rw-r--r--cmd/mist/assets/examples/coin.html26
-rw-r--r--cmd/mist/assets/examples/coin.js65
-rw-r--r--cmd/mist/assets/examples/info.html4
-rw-r--r--cmd/mist/assets/qml/main.qml98
-rw-r--r--cmd/mist/assets/qml/views/browser.qml69
-rw-r--r--cmd/mist/assets/qml/views/info.qml12
-rw-r--r--cmd/mist/assets/qml/views/miner.qml21
-rw-r--r--cmd/mist/assets/qml/views/transaction.qml4
-rw-r--r--cmd/mist/assets/qml/views/wallet.qml11
9 files changed, 187 insertions, 123 deletions
diff --git a/cmd/mist/assets/examples/coin.html b/cmd/mist/assets/examples/coin.html
index 71b359834..ca7a9c0dd 100644
--- a/cmd/mist/assets/examples/coin.html
+++ b/cmd/mist/assets/examples/coin.html
@@ -7,7 +7,7 @@
</head>
<body>
-<h1>JevCoin <code id="address"></code></h1>
+<h1>JevCoin <code id="contract_addr"></code></h1>
<div>
<strong>Balance</strong>
<span id="balance"></strong>
@@ -58,31 +58,33 @@
}],
"outputs": []
}, {
- "name":"changed",
+ "name":"received",
"type":"event",
"inputs": [
- {"name":"to","type":"address","indexed":true},
{"name":"from","type":"address","indexed":true},
+ {"name":"amount","type":"uint256","indexed":true},
],
}];
var address = localStorage.getItem("address");
// deploy if not exist
if (address == null) {
- var code = "0x60056013565b610132806100356000396000f35b620f4240600033600160a060020a0316600052602052604060002081905550560060e060020a6000350480637bb98a681461002b578063d0679d3414610039578063e3d670d71461004d57005b61003361012d565b60006000f35b610047600435602435610062565b60006000f35b61005860043561010b565b8060005260206000f35b80600033600160a060020a0316600052602052604060002054106100855761008a565b610107565b80600033600160a060020a0316600052602052604060002090815403908190555080600083600160a060020a0316600052602052604060002090815401908190555081600160a060020a031633600160a060020a03167f1863989b4bb7c5c3941722099764574df7a459f9f9c6b6cdca35ddc9731792b860006000a35b5050565b6000600082600160a060020a03166000526020526040600020549050919050565b5b60008156";
- address = web3.eth.transact({
- data: code,
- gasPrice: "1000000000000000",
- gas: "10000",
- });
+ var code = "0x60056013565b61012b806100346000396000f35b6103e8600033600160a060020a0316600052602052604060002081905550560060e060020a6000350480637bb98a681461002b578063d0679d3414610039578063e3d670d71461004d57005b610033610126565b60006000f35b610047600435602435610062565b60006000f35b610058600435610104565b8060005260206000f35b80600033600160a060020a0316600052602052604060002054101561008657610100565b80600033600160a060020a0316600052602052604060002090815403908190555080600083600160a060020a0316600052602052604060002090815401908190555033600160a060020a0316600052806020527ff11e547d796cc64acdf758e7cee90439494fd886a19159454aa61e473fdbafef60406000a15b5050565b6000600082600160a060020a03166000526020526040600020549050919050565b5b60008156";
+ address = web3.eth.transact({data: code});
localStorage.setItem("address", address);
}
- document.querySelector("#address").innerHTML = address.toUpperCase();
+ document.querySelector("#contract_addr").innerHTML = address.toUpperCase();
var contract = web3.eth.contract(address, desc);
- contract.changed({from: eth.accounts[0]}).changed(function() {
+ 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();
});
@@ -102,7 +104,6 @@
function transact() {
var to = document.querySelector("#address").value;
-
if( to.length == 0 ) {
to = "0x4205b06c2cfa0e30359edcab94543266cb6fa1d3";
} else {
@@ -116,7 +117,6 @@
refresh();
</script>
-
</html>
<!--
diff --git a/cmd/mist/assets/examples/coin.js b/cmd/mist/assets/examples/coin.js
new file mode 100644
index 000000000..77daac846
--- /dev/null
+++ b/cmd/mist/assets/examples/coin.js
@@ -0,0 +1,65 @@
+var walletABI = [
+ {
+ "name":"confirm",
+ "type":"function",
+ "constant":false,
+ "inputs":[
+ {"name":"_h","type":"hash256"}
+ ],
+ "outputs":[]
+ },{
+ "name":"execute",
+ "constant":false,
+ "type":"function",
+ "inputs":[
+ {"name":"_to","type":"address"},
+ {"name":"_value","type":"uint256"},
+ {"name":"_data","type":"bytes"}
+ ],
+ "outputs":[
+ {"name":"_r","type":"hash256"}
+ ]
+ },{
+ "name":"kill",
+ "type":"function",
+ "constant":false,
+ "inputs":[
+ {"name":"_to","type":"address"}
+ ],
+ "outputs":[]
+ },{
+ "name":"changeOwner",
+ "type":"function",
+ "constant":false,
+ "inputs":[
+ {"name":"_from","type":"address"},
+ {"name":"_to","type":"address"}
+ ],
+ "outputs":[]
+ },{
+ "name":"CashIn",
+ "type":"event",
+ "inputs":[
+ {"indexed":false,"name":"value","type":"uint256"}
+ ]
+ },{
+ "name":"SingleTransact",
+ "type":"event",
+ "inputs":[
+ {"indexed":true,"name":"out","type":"string32"},
+ {"indexed":false,"name":"owner","type":"address"},
+ {"indexed":false,"name":"value","type":"uint256"},
+ {"indexed":false,"name":"to","type":"address"}
+ ]
+ },{
+ "name":"MultiTransact",
+ "type":"event",
+ "inputs":[
+ {"indexed":true,"name":"out","type":"string32"},
+ {"indexed":false,"name":"owner","type":"address"},
+ {"indexed":false,"name":"operation","type":"hash256"},
+ {"indexed":false,"name":"value","type":"uint256"},
+ {"indexed":false,"name":"to","type":"address"}
+ ]
+ }
+];
diff --git a/cmd/mist/assets/examples/info.html b/cmd/mist/assets/examples/info.html
index daad8c706..d8816b19f 100644
--- a/cmd/mist/assets/examples/info.html
+++ b/cmd/mist/assets/examples/info.html
@@ -1,8 +1,8 @@
<!doctype>
<html>
-
<head>
+<meta name="badge" content="10">
<script type="text/javascript" src="../ext/bignumber.min.js"></script>
<script type="text/javascript" src="../ext/ethereum.js/dist/ethereum.js"></script>
</head>
@@ -60,7 +60,7 @@
var web3 = require('web3');
var eth = web3.eth;
- web3.setProvider(new web3.providers.HttpSyncProvider('http://localhost:8080'));
+ web3.setProvider(new web3.providers.HttpSyncProvider('http://localhost:8545'));
document.querySelector("#number").innerHTML = eth.number;
document.querySelector("#coinbase").innerHTML = eth.coinbase
diff --git a/cmd/mist/assets/qml/main.qml b/cmd/mist/assets/qml/main.qml
index 1272f8761..03c8e4518 100644
--- a/cmd/mist/assets/qml/main.qml
+++ b/cmd/mist/assets/qml/main.qml
@@ -17,6 +17,7 @@ ApplicationWindow {
// Use this to make the window frameless. But then you'll need to do move and resize by hand
property var ethx : Eth.ethx
+ property var catalog;
width: 1200
height: 820
@@ -39,7 +40,7 @@ ApplicationWindow {
// Takes care of loading all default plugins
Component.onCompleted: {
- var catalog = addPlugin("./views/catalog.qml", {noAdd: true, close: false, section: "begin"});
+ catalog = addPlugin("./views/catalog.qml", {noAdd: true, close: false, section: "begin"});
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});
@@ -66,6 +67,7 @@ ApplicationWindow {
urlPane.visible = true;
mainView.anchors.top = divider.bottom
}*/
+
}
function addViews(view, path, options) {
@@ -146,27 +148,10 @@ ApplicationWindow {
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("http://etherian.io");
+ activeView(catalog.view, catalog.menuItem);
}
}
@@ -258,18 +243,6 @@ ApplicationWindow {
}
}
}
-
- Menu {
- title: "GLOBAL SHORTCUTS"
- visible: false
- MenuItem {
- visible: false
- shortcut: "Ctrl+l"
- onTriggered: {
- url.focus = true
- }
- }
- }
}
statusBar: StatusBar {
@@ -285,6 +258,7 @@ ApplicationWindow {
styleColor: "#797979"
}
+ /*
Label {
//y: 6
objectName: "miningLabel"
@@ -303,6 +277,7 @@ ApplicationWindow {
anchors.right: peerGroup.left
anchors.rightMargin: 5
}
+ */
ProgressBar {
visible: false
@@ -335,7 +310,7 @@ ApplicationWindow {
}
Label {
- id: peerLabel
+ id: peerCounterLabel
font.pixelSize: 10
text: "0 / 0"
}
@@ -925,7 +900,6 @@ ApplicationWindow {
}
}
-
function setWalletValue(value) {
walletValueLabel.text = value
}
@@ -935,17 +909,11 @@ ApplicationWindow {
var view = mainView.addPlugin(name)
}
- function setPeers(text) {
- peerLabel.text = text
- }
+ function clearPeers() { peerModel.clear() }
+ function addPeer(peer) { peerModel.append(peer) }
- 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 setPeerCounters(text) {
+ peerCounterLabel.text = text
}
function timeAgo(unixTs){
@@ -983,9 +951,9 @@ ApplicationWindow {
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" }
+ TableViewColumn{width: 180; role: "addr" ; title: "Remote Address" }
+ TableViewColumn{width: 280; role: "nodeID" ; title: "Node ID" }
+ TableViewColumn{width: 180; role: "caps" ; title: "Capabilities" }
}
}
}
@@ -1053,37 +1021,25 @@ ApplicationWindow {
Window {
id: addPeerWin
visible: false
- minimumWidth: 300
- maximumWidth: 300
+ minimumWidth: 400
+ maximumWidth: 400
maximumHeight: 50
minimumHeight: 50
title: "Connect to peer"
- ComboBox {
+ TextField {
id: addrField
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.right: addPeerButton.left
anchors.leftMargin: 10
anchors.rightMargin: 10
+ placeholderText: "enode://<hex node id>:<IP address>:<port>"
onAccepted: {
- eth.connectToPeer(addrField.currentText)
- addPeerWin.visible = false
- }
-
- editable: true
- model: ListModel { id: pastPeers }
-
- Component.onCompleted: {
- pastPeers.insert(0, {text: "poc-8.ethdev.com:30303"})
- /*
- var ips = eth.pastPeers()
- for(var i = 0; i < ips.length; i++) {
- pastPeers.append({text: ips.get(i)})
- }
-
- pastPeers.insert(0, {text: "poc-7.ethdev.com:30303"})
- */
+ if(addrField.text.length != 0) {
+ eth.connectToPeer(addrField.text)
+ addPeerWin.visible = false
+ }
}
}
@@ -1092,14 +1048,16 @@ ApplicationWindow {
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
anchors.rightMargin: 10
- text: "Add"
+ text: "Connect"
onClicked: {
- eth.connectToPeer(addrField.currentText)
- addPeerWin.visible = false
+ if(addrField.text.length != 0) {
+ eth.connectToPeer(addrField.text)
+ addPeerWin.visible = false
+ }
}
}
Component.onCompleted: {
addrField.focus = true
}
}
- } \ No newline at end of file
+ }
diff --git a/cmd/mist/assets/qml/views/browser.qml b/cmd/mist/assets/qml/views/browser.qml
index 3a35c2a65..6ded02fcb 100644
--- a/cmd/mist/assets/qml/views/browser.qml
+++ b/cmd/mist/assets/qml/views/browser.qml
@@ -3,7 +3,7 @@ import QtQuick.Controls 1.0;
import QtQuick.Controls.Styles 1.0
import QtQuick.Layouts 1.0;
import QtWebEngine 1.0
-//import QtWebEngine.experimental 1.0
+import QtWebEngine.experimental 1.0
import QtQuick.Window 2.0;
Rectangle {
@@ -340,41 +340,61 @@ Rectangle {
WebEngineView {
objectName: "webView"
id: webview
+ experimental.settings.javascriptCanAccessClipboard: true
+ experimental.settings.localContentCanAccessRemoteUrls: true
anchors {
left: parent.left
right: parent.right
bottom: parent.bottom
top: navBar.bottom
}
-
- z: 10
-
- onLoadingChanged: {
-
- // this checks if your app has special header tags
+ z: 10
+
+ Timer {
+ interval: 500; running: true; repeat: true
+ onTriggered: {
+ webview.runJavaScript("try{document.querySelector('meta[name=badge]').getAttribute('content')}catch(e){}", function(badge) {
+ if (badge) {
+ menuItem.secondaryTitle = badge;
+ }
+ });
+ }
+ }
+
+ onLoadingChanged: {
if (loadRequest.status == WebEngineView.LoadSucceededStatus) {
webview.runJavaScript("document.title", function(pageTitle) {
menuItem.title = pageTitle;
});
- webView.runJavaScript("document.querySelector(\"meta[name='ethereum-dapp-url-bar-style']\").getAttribute(\"content\")", function(topBarStyle){
+
+ webView.runJavaScript("try{document.querySelector(\"meta[name='ethereum-dapp-url-bar-style']\").getAttribute(\"content\")}catch(e){}", function(topBarStyle){
+ if (!topBarStyle) {
+ showFullUrlBar(true);
+ navBarBackground.visible = true;
+ back.visible = true;
+ appInfoPane.anchors.leftMargin = 0;
+ appInfoPaneShadow.anchors.leftMargin = 0;
+ webview.anchors.topMargin = 0;
+ return;
+ }
+
if (topBarStyle=="transparent") {
// Adjust for a transparent sidebar Dapp
- navBarBackground.visible = false;
- back.visible = false;
- appInfoPane.anchors.leftMargin = -16;
- appInfoPaneShadow.anchors.leftMargin = -16;
- webview.anchors.topMargin = -74;
+ navBarBackground.visible = false;
+ back.visible = false;
+ appInfoPane.anchors.leftMargin = -16;
+ appInfoPaneShadow.anchors.leftMargin = -16;
+ webview.anchors.topMargin = -74;
webview.runJavaScript("document.querySelector('body').classList.add('ethereum-dapp-url-bar-style-transparent')")
} else {
- navBarBackground.visible = true;
- back.visible = true;
- appInfoPane.anchors.leftMargin = 0;
- appInfoPaneShadow.anchors.leftMargin = 0;
- webview.anchors.topMargin = 0;
-
- };
+ navBarBackground.visible = true;
+ back.visible = true;
+ appInfoPane.anchors.leftMargin = 0;
+ appInfoPaneShadow.anchors.leftMargin = 0;
+ webview.anchors.topMargin = 0;
+ };
});
// webView.runJavaScript("document.querySelector(\"link[rel='icon']\").getAttribute(\"href\")", function(sideIcon){
@@ -391,10 +411,13 @@ Rectangle {
var matches = cleanTitle.match(/^[a-z]*\:\/\/([^\/?#]+)(?:[\/?#]|$)/i);
var domain = matches && matches[1];
- appDomain.text = domain
- appTitle.text = webview.title
- showFullUrlBar(false);
+ if (domain)
+ appDomain.text = domain //webview.url.replace("a", "z")
+ if (webview.title)
+ appTitle.text = webview.title
+
+ showFullUrlBar(false);
}
}
onJavaScriptConsoleMessage: {
diff --git a/cmd/mist/assets/qml/views/info.qml b/cmd/mist/assets/qml/views/info.qml
index 14ee0bce1..b2d2f521c 100644
--- a/cmd/mist/assets/qml/views/info.qml
+++ b/cmd/mist/assets/qml/views/info.qml
@@ -32,18 +32,6 @@ Rectangle {
width: 500
}
- Label {
- text: "Client ID"
- }
- TextField {
- text: gui.getCustomIdentifier()
- width: 500
- placeholderText: "Anonymous"
- onTextChanged: {
- gui.setCustomIdentifier(text)
- }
- }
-
TextArea {
objectName: "statsPane"
width: parent.width
diff --git a/cmd/mist/assets/qml/views/miner.qml b/cmd/mist/assets/qml/views/miner.qml
index 193ce37be..6a199a925 100644
--- a/cmd/mist/assets/qml/views/miner.qml
+++ b/cmd/mist/assets/qml/views/miner.qml
@@ -14,6 +14,27 @@ Rectangle {
color: "#00000000"
+ Label {
+ visible: false
+ id: lastBlockLabel
+ objectName: "lastBlockLabel"
+ text: "---"
+ onTextChanged: {
+ //menuItem.secondaryTitle = text
+ }
+ }
+
+ Label {
+ objectName: "miningLabel"
+ visible: false
+ font.pixelSize: 10
+ anchors.right: lastBlockLabel.left
+ anchors.rightMargin: 5
+ onTextChanged: {
+ menuItem.secondaryTitle = text
+ }
+ }
+
ColumnLayout {
spacing: 10
anchors.fill: parent
diff --git a/cmd/mist/assets/qml/views/transaction.qml b/cmd/mist/assets/qml/views/transaction.qml
index 62c762956..df798a9c0 100644
--- a/cmd/mist/assets/qml/views/transaction.qml
+++ b/cmd/mist/assets/qml/views/transaction.qml
@@ -103,7 +103,7 @@ Rectangle {
ComboBox {
id: valueDenom
- currentIndex: 6
+ currentIndex: 5
model: denomModel
}
}
@@ -177,7 +177,7 @@ Rectangle {
mainContractColumn.state = "ERROR"
} else {
txResult.text = "Your transaction has been submitted:\n"
- txOutput.text = res[0].address
+ txOutput.text = res.toString()
mainContractColumn.state = "DONE"
console.log(res)
diff --git a/cmd/mist/assets/qml/views/wallet.qml b/cmd/mist/assets/qml/views/wallet.qml
index 545098284..59dbae848 100644
--- a/cmd/mist/assets/qml/views/wallet.qml
+++ b/cmd/mist/assets/qml/views/wallet.qml
@@ -15,6 +15,15 @@ Rectangle {
objectName: "walletView"
anchors.fill: parent
+ Label {
+ objectName: "balanceLabel"
+ visible: false
+ onTextChanged: {
+ balance.text = text
+ menuItem.secondaryTitle = text
+ }
+ }
+
function onReady() {
setBalance()
}
@@ -95,7 +104,7 @@ Rectangle {
ComboBox {
id: valueDenom
- currentIndex: 6
+ currentIndex: 5
model: denomModel
}