Updated test coin
This commit is contained in:
parent
aec3e26ea0
commit
a3c8f83562
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
Loading…
Reference in New Issue