Updated test coin

pull/34/head
obscuren 11 years ago
parent aec3e26ea0
commit a3c8f83562
  1. 28
      ethereal/assets/ethereum.js
  2. 158
      ethereal/assets/qml/webapp.qml
  3. 37
      ethereal/assets/test.html

@ -12,17 +12,35 @@ function postData(data, cb) {
window.eth = { window.eth = {
prototype: Object(), prototype: Object(),
send: function(cb) { // Retrieve block
document.getElementById("out").innerHTML = "clicked"; //
postData({message: "Hello world"}, cb); // 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 = {} window.eth._callbacks = {}
function debug(/**/) { function debug(/**/) {
var args = arguments; var args = arguments;
var msg = "" var msg = ""
for(var i=0; i<args.length; i++){ for(var i = 0; i < args.length; i++){
if(typeof args[i] == "object") { if(typeof args[i] == "object") {
msg += " " + JSON.stringify(args[i]) msg += " " + JSON.stringify(args[i])
} else { } else {

@ -7,79 +7,103 @@ import QtQuick.Window 2.1;
import Ethereum 1.0 import Ethereum 1.0
ApplicationWindow { ApplicationWindow {
id: window id: window
title: "Webapp" title: "Ethereum"
width: 900 width: 900
height: 600 height: 600
minimumHeight: 300 minimumHeight: 300
property alias url: webview.url
Item { property alias url: webview.url
id: root property alias webView: webview
anchors.fill: parent
state: "inspectorShown"
WebView { Item {
id: webview objectName: "root"
anchors { id: root
left: parent.left anchors.fill: parent
right: parent.right state: "inspectorShown"
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)
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 { onTitleChanged: { window.title = title }
id: sizeGrip experimental.preferences.javascriptEnabled: true
color: "gray" experimental.preferences.navigatorQtObjectEnabled: true
visible: true experimental.preferences.developerExtrasEnabled: true
height: 10 experimental.userScripts: [ui.assetPath("ethereum.js")]
anchors { experimental.onMessageReceived: {
left: root.left console.log("[onMessageReceived]: ", message.data)
right: root.right var data = JSON.parse(message.data)
}
y: Math.round(root.height * 2 / 3)
MouseArea { switch(data.call) {
anchors.fill: parent case "getBlockByNumber":
drag.target: sizeGrip var block = eth.getBlock("b9b56cf6f907fbee21db0cd7cbc0e6fea2fe29503a3943e275c5e467d649cb06")
drag.minimumY: 0 postData(data._seed, block)
drag.maximumY: root.height break
drag.axis: Drag.YAxis 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 { Rectangle {
id: inspector id: sizeGrip
visible: true color: "gray"
url: webview.experimental.remoteInspectorUrl visible: true
anchors { height: 10
left: root.left anchors {
right: root.right left: root.left
top: sizeGrip.bottom right: root.right
bottom: root.bottom }
} y: Math.round(root.height * 2 / 3)
}
states: [ MouseArea {
State { anchors.fill: parent
name: "inspectorShown" drag.target: sizeGrip
PropertyChanges { drag.minimumY: 0
target: inspector drag.maximumY: root.height
url: webview.experimental.remoteInspectorUrl 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
}
}
]
} }
}
]
}
} }

@ -1,27 +1,40 @@
<html> <html>
<head> <head>
<title>Epic Works (TM)</title> <title>jeffcoin</title>
<body> <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="transactions">
<div id="out"></div> <input id="addr" type="text" placeholder="Receiver address"></input><br>
<div id="in"></div> <input id="amount" type="text" placeholder="Amount"></input><br>
<div id="debug"></div> <button onclick="createTransaction();">Send Tx</button>
</div>
<div><button onclick="test();">Tests</button></div>
<script type="text/javascript"> <script type="text/javascript">
function test() { function createTransaction() {
eth.send(function(data) { debug("test")
debug(data) var addr = document.querySelector("#addr").value;
document.getElementById("in").innerHTML ="and the other way around " + data.message; 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> </script>
<div id="debug" style="border: 1px solid block"></div>
</body> </body>
</html> </html>

Loading…
Cancel
Save