aboutsummaryrefslogtreecommitdiffstats
path: root/ethereal/assets
diff options
context:
space:
mode:
Diffstat (limited to 'ethereal/assets')
-rw-r--r--ethereal/assets/ethereum.js28
-rw-r--r--ethereal/assets/qml/webapp.qml158
-rw-r--r--ethereal/assets/test.html37
3 files changed, 139 insertions, 84 deletions
diff --git a/ethereal/assets/ethereum.js b/ethereal/assets/ethereum.js
index b8908913d..173eaff22 100644
--- a/ethereal/assets/ethereum.js
+++ b/ethereal/assets/ethereum.js
@@ -12,17 +12,35 @@ function postData(data, cb) {
window.eth = {
prototype: Object(),
- send: function(cb) {
- document.getElementById("out").innerHTML = "clicked";
- postData({message: "Hello world"}, cb);
- }
+ // Retrieve block
+ //
+ // Either supply a number or a string. Type is determent for the lookup method
+ // string - Retrieves the block by looking up the hash
+ // number - Retrieves the block by looking up the block number
+ getBlock: function(numberOrHash, cb) {
+ var func;
+ if(typeof numberOrHash == "string") {
+ func = "getBlockByHash"
+ } else {
+ func = "getBlockByNumber"
+ }
+ postData({call: func, args: [numberOrHash]}, cb)
+ },
+
+ // Create transaction
+ //
+ // Creates a transaction with the current account
+ // If no recipient is set, the Ethereum API will see it as a contract creation
+ createTx: function(recipient, value, gas, gasPrice, data, cb) {
+ postData({call: "createTx", args: [recipient, value, gas, gasPrice, data]}, cb)
+ },
}
window.eth._callbacks = {}
function debug(/**/) {
var args = arguments;
var msg = ""
- for(var i=0; i<args.length; i++){
+ for(var i = 0; i < args.length; i++){
if(typeof args[i] == "object") {
msg += " " + JSON.stringify(args[i])
} else {
diff --git a/ethereal/assets/qml/webapp.qml b/ethereal/assets/qml/webapp.qml
index 4695903e8..496beb65a 100644
--- a/ethereal/assets/qml/webapp.qml
+++ b/ethereal/assets/qml/webapp.qml
@@ -7,79 +7,103 @@ import QtQuick.Window 2.1;
import Ethereum 1.0
ApplicationWindow {
- id: window
- title: "Webapp"
- width: 900
- height: 600
- minimumHeight: 300
- property alias url: webview.url
+ id: window
+ title: "Ethereum"
+ width: 900
+ height: 600
+ minimumHeight: 300
- Item {
- id: root
- anchors.fill: parent
- state: "inspectorShown"
+ property alias url: webview.url
+ property alias webView: webview
- WebView {
- id: webview
- anchors {
- left: parent.left
- right: parent.right
- bottom: sizeGrip.top
- top: parent.top
- }
- onTitleChanged: { window.title = title }
- experimental.preferences.javascriptEnabled: true
- experimental.preferences.navigatorQtObjectEnabled: true
- experimental.preferences.developerExtrasEnabled: true
- experimental.userScripts: [ui.assetPath("ethereum.js")]
- experimental.onMessageReceived: {
- console.log("[onMessageReceived]: ", message.data)
- var data = JSON.parse(message.data)
+ Item {
+ objectName: "root"
+ id: root
+ anchors.fill: parent
+ state: "inspectorShown"
- webview.experimental.postMessage(JSON.stringify({data: {message: data.message}, _seed: data._seed}))
- }
- }
+ WebView {
+ objectName: "webView"
+ id: webview
+ anchors {
+ left: parent.left
+ right: parent.right
+ bottom: sizeGrip.top
+ top: parent.top
+ }
- Rectangle {
- id: sizeGrip
- color: "gray"
- visible: true
- height: 10
- anchors {
- left: root.left
- right: root.right
- }
- y: Math.round(root.height * 2 / 3)
+ onTitleChanged: { window.title = title }
+ experimental.preferences.javascriptEnabled: true
+ experimental.preferences.navigatorQtObjectEnabled: true
+ experimental.preferences.developerExtrasEnabled: true
+ experimental.userScripts: [ui.assetPath("ethereum.js")]
+ experimental.onMessageReceived: {
+ console.log("[onMessageReceived]: ", message.data)
+ var data = JSON.parse(message.data)
- MouseArea {
- anchors.fill: parent
- drag.target: sizeGrip
- drag.minimumY: 0
- drag.maximumY: root.height
- drag.axis: Drag.YAxis
- }
- }
+ switch(data.call) {
+ case "getBlockByNumber":
+ var block = eth.getBlock("b9b56cf6f907fbee21db0cd7cbc0e6fea2fe29503a3943e275c5e467d649cb06")
+ postData(data._seed, block)
+ break
+ case "getBlockByHash":
+ var block = eth.getBlock("b9b56cf6f907fbee21db0cd7cbc0e6fea2fe29503a3943e275c5e467d649cb06")
+ postData(data._seed, block)
+ break
+ case "createTx":
+ if(data.args.length < 5) {
+ postData(data._seed, null)
+ } else {
+ var tx = eth.createTx(data.args[0], data.args[1],data.args[2],data.args[3],data.args[4])
+ postData(data._seed, tx)
+ }
+ }
+ }
+ function postData(seed, data) {
+ webview.experimental.postMessage(JSON.stringify({data: data, _seed: seed}))
+ }
+ }
- WebView {
- id: inspector
- visible: true
- url: webview.experimental.remoteInspectorUrl
- anchors {
- left: root.left
- right: root.right
- top: sizeGrip.bottom
- bottom: root.bottom
- }
- }
+ Rectangle {
+ id: sizeGrip
+ color: "gray"
+ visible: true
+ height: 10
+ anchors {
+ left: root.left
+ right: root.right
+ }
+ y: Math.round(root.height * 2 / 3)
- states: [
- State {
- name: "inspectorShown"
- PropertyChanges {
- target: inspector
- url: webview.experimental.remoteInspectorUrl
+ MouseArea {
+ anchors.fill: parent
+ drag.target: sizeGrip
+ drag.minimumY: 0
+ drag.maximumY: root.height
+ drag.axis: Drag.YAxis
+ }
+ }
+
+ WebView {
+ id: inspector
+ visible: true
+ url: webview.experimental.remoteInspectorUrl
+ anchors {
+ left: root.left
+ right: root.right
+ top: sizeGrip.bottom
+ bottom: root.bottom
+ }
+ }
+
+ states: [
+ State {
+ name: "inspectorShown"
+ PropertyChanges {
+ target: inspector
+ url: webview.experimental.remoteInspectorUrl
+ }
+ }
+ ]
}
- }
- ]
- }
}
diff --git a/ethereal/assets/test.html b/ethereal/assets/test.html
index bd8711d38..eb55bf667 100644
--- a/ethereal/assets/test.html
+++ b/ethereal/assets/test.html
@@ -1,27 +1,40 @@
<html>
<head>
-<title>Epic Works (TM)</title>
+<title>jeffcoin</title>
<body>
-<h1>It just works!</h1>
+<h1>Jeff Coin</h1>
-<p>Play with me...</p>
+<img src="file:///Users/jeffrey/Desktop/iconnew.png">
-<button onclick="test();">test</button>
-<div id="out"></div>
-<div id="in"></div>
-<div id="debug"></div>
+<div id="transactions">
+ <input id="addr" type="text" placeholder="Receiver address"></input><br>
+ <input id="amount" type="text" placeholder="Amount"></input><br>
+ <button onclick="createTransaction();">Send Tx</button>
+</div>
+
+<div><button onclick="test();">Tests</button></div>
<script type="text/javascript">
-function test() {
- eth.send(function(data) {
- debug(data)
- document.getElementById("in").innerHTML ="and the other way around " + data.message;
+function createTransaction() {
+ debug("test")
+ var addr = document.querySelector("#addr").value;
+ var amount = document.querySelector("#amount").value;
+
+ eth.createTx(addr, amount, "100", "250", "", function(tx) {
+ debug("received tx hash:", tx)
})
}
-
+// Any test related actions here please
+function tests() {
+ eth.getBlock(1, function(block) {
+ debug("queried block:", block)
+ })
+}
</script>
+<div id="debug" style="border: 1px solid block"></div>
+
</body>
</html>