diff options
Diffstat (limited to 'ethereal/assets')
-rw-r--r-- | ethereal/assets/ext/ethereum.js | 17 | ||||
-rw-r--r-- | ethereal/assets/qml/first_run.qml | 262 | ||||
-rw-r--r-- | ethereal/assets/qml/webapp.qml | 31 | ||||
-rw-r--r-- | ethereal/assets/util/test.html | 43 |
4 files changed, 220 insertions, 133 deletions
diff --git a/ethereal/assets/ext/ethereum.js b/ethereal/assets/ext/ethereum.js index f565e58bd..d4eaf97fd 100644 --- a/ethereal/assets/ext/ethereum.js +++ b/ethereal/assets/ext/ethereum.js @@ -36,6 +36,21 @@ window.eth = { postData({call: "getKey"}, cb); }, + getTxCountAt: function(address, cb) { + postData({call: "getTxCountAt", args: [address]}, cb); + }, + getIsMining: function(cb){ + postData({call: "getIsMining"}, cb) + }, + getIsListening: function(cb){ + postData({call: "getIsListening"}, cb) + }, + getCoinBase: function(cb){ + postData({call: "getCoinBase"}, cb); + }, + getPeerCount: function(cb){ + postData({call: "getPeerCount"}, cb); + }, getBalanceAt: function(address, cb) { postData({call: "getBalance", args: [address]}, cb); }, @@ -115,6 +130,8 @@ window.eth = { } } }, + + } window.eth._callbacks = {} window.eth._onCallbacks = {} diff --git a/ethereal/assets/qml/first_run.qml b/ethereal/assets/qml/first_run.qml index 0bd3b4ce1..0b1dac4c6 100644 --- a/ethereal/assets/qml/first_run.qml +++ b/ethereal/assets/qml/first_run.qml @@ -10,146 +10,146 @@ import QtQuick.Controls.Styles 1.1 import QtQuick.Dialogs 1.1 ApplicationWindow { - id: wizardRoot - width: 500 - height: 400 - title: "Ethereal first run setup" + id: wizardRoot + width: 500 + height: 400 + title: "Ethereal first run setup" - Column { - spacing: 5 - anchors.leftMargin: 10 - anchors.left: parent.left + Column { + spacing: 5 + anchors.leftMargin: 10 + anchors.left: parent.left - Text { - visible: true - text: "<h2>Ethereal setup</h2>" - } + Text { + visible: true + text: "<h2>Ethereal setup</h2>" + } - Column { - id: restoreColumn - spacing: 5 - Text { - visible: true - font.pointSize: 14 - text: "Restore your Ethereum account" - id: restoreLabel - } + Column { + id: restoreColumn + spacing: 5 + Text { + visible: true + font.pointSize: 14 + text: "Restore your Ethereum account" + id: restoreLabel + } - TextField { - id: txPrivKey - width: 480 - placeholderText: "Private key or mnemonic words" - focus: true - onTextChanged: { - if(this.text.length == 64){ - detailLabel.text = "Private (hex) key detected." - actionButton.enabled = true - } - else if(this.text.split(" ").length == 24){ - detailLabel.text = "Mnemonic key detected." - actionButton.enabled = true - }else{ - detailLabel.text = "" - actionButton.enabled = false - } + TextField { + id: txPrivKey + width: 480 + placeholderText: "Private key or mnemonic words" + focus: true + onTextChanged: { + if(this.text.length == 64){ + detailLabel.text = "Private (hex) key detected." + actionButton.enabled = true + } + else if(this.text.split(" ").length == 24){ + detailLabel.text = "Mnemonic key detected." + actionButton.enabled = true + }else{ + detailLabel.text = "" + actionButton.enabled = false + } + } + } + Row { + spacing: 10 + Button { + id: actionButton + text: "Restore" + enabled: false + onClicked: { + var success = lib.importAndSetPrivKey(txPrivKey.text) + if(success){ + importedDetails.visible = true + restoreColumn.visible = false + newKey.visible = false + wizardRoot.height = 120 + } + } + } + Text { + id: detailLabel + font.pointSize: 12 + anchors.topMargin: 10 + } + } } - } - Row { - spacing: 10 - Button { - id: actionButton - text: "Restore" - enabled: false - onClicked: { - var success = eth.importAndSetPrivKey(txPrivKey.text) - if(success){ - importedDetails.visible = true - restoreColumn.visible = false - newKey.visible = false - wizardRoot.height = 120 - } - } + Column { + id: importedDetails + visible: false + Text { + text: "<b>Your account has been imported. Please close the application and restart it again to let the changes take effect.</b>" + wrapMode: Text.WordWrap + width: 460 + } } - Text { - id: detailLabel - font.pointSize: 12 - anchors.topMargin: 10 + Column { + spacing: 5 + id: newDetailsColumn + visible: false + Text { + font.pointSize: 14 + text: "Your account details" + } + Label { + text: "Address" + } + TextField { + id: addressInput + readOnly:true + width: 480 + } + Label { + text: "Private key" + } + TextField { + id: privkeyInput + readOnly:true + width: 480 + } + Label { + text: "Mnemonic words" + } + TextField { + id: mnemonicInput + readOnly:true + width: 480 + } + Label { + text: "<b>A new account has been created. Please take the time to write down the <i>24 words</i>. You can use those to restore your account at a later date.</b>" + wrapMode: Text.WordWrap + width: 480 + } + Label { + text: "Please restart the application once you have completed the steps above." + wrapMode: Text.WordWrap + width: 480 + } } - } - } - Column { - id: importedDetails - visible: false - Text { - text: "<b>Your account has been imported. Please close the application and restart it again to let the changes take effect.</b>" - wrapMode: Text.WordWrap - width: 460 - } - } - Column { - spacing: 5 - id: newDetailsColumn - visible: false - Text { - font.pointSize: 14 - text: "Your account details" - } - Label { - text: "Address" - } - TextField { - id: addressInput - readOnly:true - width: 480 - } - Label { - text: "Private key" - } - TextField { - id: privkeyInput - readOnly:true - width: 480 - } - Label { - text: "Mnemonic words" - } - TextField { - id: mnemonicInput - readOnly:true - width: 480 - } - Label { - text: "<b>A new account has been created. Please take the time to write down the <i>24 words</i>. You can use those to restore your account at a later date.</b>" - wrapMode: Text.WordWrap - width: 480 - } - Label { - text: "Please restart the application once you have completed the steps above." - wrapMode: Text.WordWrap - width: 480 - } - } - } - Button { - anchors.right: parent.right - anchors.bottom: parent.bottom - anchors.rightMargin: 10 - anchors.bottomMargin: 10 - id: newKey - text: "I don't have an account yet" - onClicked: { - var res = eth.createAndSetPrivKey() - mnemonicInput.text = res[0] - addressInput.text = res[1] - privkeyInput.text = res[2] + } + Button { + anchors.right: parent.right + anchors.bottom: parent.bottom + anchors.rightMargin: 10 + anchors.bottomMargin: 10 + id: newKey + text: "I don't have an account yet" + onClicked: { + var res = lib.createAndSetPrivKey() + mnemonicInput.text = res[0] + addressInput.text = res[1] + privkeyInput.text = res[2] - // Hide restore - restoreColumn.visible = false + // Hide restore + restoreColumn.visible = false - // Show new details - newDetailsColumn.visible = true - newKey.visible = false + // Show new details + newDetailsColumn.visible = true + newKey.visible = false + } } - } } diff --git a/ethereal/assets/qml/webapp.qml b/ethereal/assets/qml/webapp.qml index 1f3c3874a..7af006f77 100644 --- a/ethereal/assets/qml/webapp.qml +++ b/ethereal/assets/qml/webapp.qml @@ -47,13 +47,37 @@ ApplicationWindow { try { switch(data.call) { + case "getCoinBase": + postData(data._seed, eth.getCoinBase()) + + break + case "getIsListening": + postData(data._seed, eth.getIsListening()) + + break + case "getIsMining": + postData(data._seed, eth.getIsMining()) + + break + case "getPeerCount": + postData(data._seed, eth.getPeerCount()) + + break + + case "getTxCountAt": + require(1) + postData(data._seed, eth.getTxCountAt(data.args[0])) + + break case "getBlockByNumber": - var block = eth.getBlock("b9b56cf6f907fbee21db0cd7cbc0e6fea2fe29503a3943e275c5e467d649cb06") + var block = eth.getBlock("b9b56cf6f907fbee21db0cd7cbc0e6fea2fe29503a3943e275c5e467d649cb06") postData(data._seed, block) + break case "getBlockByHash": - var block = eth.getBlock("b9b56cf6f907fbee21db0cd7cbc0e6fea2fe29503a3943e275c5e467d649cb06") + var block = eth.getBlock("b9b56cf6f907fbee21db0cd7cbc0e6fea2fe29503a3943e275c5e467d649cb06") postData(data._seed, block) + break case "transact": require(5) @@ -94,11 +118,14 @@ ApplicationWindow { postData(data._seed, null) break; case "set": + console.log("'Set' has been depcrecated") + /* for(var key in data.args) { if(webview.hasOwnProperty(key)) { window[key] = data.args[key]; } } + */ break; case "getSecretToAddress": require(1) diff --git a/ethereal/assets/util/test.html b/ethereal/assets/util/test.html new file mode 100644 index 000000000..d458e6670 --- /dev/null +++ b/ethereal/assets/util/test.html @@ -0,0 +1,43 @@ +<html> +<head> +<title>Utils</title> +</head> +<body onload="init();"> +<label>Nonce for 2ef47100e0787b915105fd5e3f4ff6752079d5cb</label> +<p id="nonce"></p> + +<label>Connected peers</label> +<p id="peers"></p> + +<label>Is mining</label> +<p id="isMining"></p> + +<label>Is listening</label> +<p id="isListen"></p> + +<label>Coinbase</label> +<p id="coinbase"></p> + +<script type="text/javascript"> + +function init() { + eth.getTxCountAt("2ef47100e0787b915105fd5e3f4ff6752079d5cb", function(nonce){ + document.querySelector("#nonce").innerHTML = nonce; + }) + eth.getPeerCount(function(peerLength){ + document.querySelector("#peers").innerHTML = peerLength; + }) + eth.getIsMining(function(mining){ + document.querySelector("#isMining").innerHTML = mining; + }) + eth.getIsListening(function(listen){ + document.querySelector("#isListen").innerHTML = listen; + }) + eth.getCoinBase(function(address){ + document.querySelector("#coinbase").innerHTML = address; + }) +} +</script> +</body> +</html> + |