aboutsummaryrefslogtreecommitdiffstats
path: root/ethereal/assets/qml
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-04-30 07:44:12 +0800
committerobscuren <geffobscura@gmail.com>2014-04-30 07:44:12 +0800
commite85d5dd428c71dd45060082a9af28a40a68a25e4 (patch)
treeb580e1d7fc5f211dda95ed9de86bdc4c9b66321c /ethereal/assets/qml
parent64c2550b3154df7f2c75dda559d91046cb559ffd (diff)
downloaddexon-e85d5dd428c71dd45060082a9af28a40a68a25e4.tar.gz
dexon-e85d5dd428c71dd45060082a9af28a40a68a25e4.tar.zst
dexon-e85d5dd428c71dd45060082a9af28a40a68a25e4.zip
API changes
Diffstat (limited to 'ethereal/assets/qml')
-rw-r--r--ethereal/assets/qml/webapp.qml286
1 files changed, 155 insertions, 131 deletions
diff --git a/ethereal/assets/qml/webapp.qml b/ethereal/assets/qml/webapp.qml
index 3afc0def0..eebe8921f 100644
--- a/ethereal/assets/qml/webapp.qml
+++ b/ethereal/assets/qml/webapp.qml
@@ -7,135 +7,159 @@ import QtQuick.Window 2.1;
import Ethereum 1.0
ApplicationWindow {
- id: window
- title: "Ethereum"
- width: 900
- height: 600
- minimumHeight: 300
-
- property alias url: webview.url
- property alias webView: webview
-
- Item {
- objectName: "root"
- id: root
- anchors.fill: parent
- state: "inspectorShown"
-
- WebView {
- objectName: "webView"
- id: webview
- anchors.fill: parent
- /*
- 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)
-
- 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)
- }
- break
- case "getStorage":
- if(data.args.length < 2) {
- postData(data._seed, null)
- } else {
- var stateObject = eth.getStateObject(data.args[0])
- var storage = stateObject.getStorage(data.args[1])
- postData(data._seed, storage)
- }
- break
- case "getKey":
- var keys = eth.getKey()
- postData(data._seed, keys)
- break
- case "watch":
- if(data.args.length > 0) {
- eth.watch(data.args[0]);
- }
- break
- }
- }
- function postData(seed, data) {
- webview.experimental.postMessage(JSON.stringify({data: data, _seed: seed}))
- }
- function postEvent(event, data) {
- webview.experimental.postMessage(JSON.stringify({data: data, _event: event}))
- }
-
- function onNewBlockCb(block) {
- postEvent("block:new", block)
- }
- function onObjectChangeCb(stateObject) {
- postEvent("object:change", stateObject)
- }
- }
-
- Rectangle {
- id: sizeGrip
- color: "gray"
- visible: false
- height: 10
- anchors {
- left: root.left
- right: root.right
- }
- y: Math.round(root.height * 2 / 3)
-
- MouseArea {
- anchors.fill: parent
- drag.target: sizeGrip
- drag.minimumY: 0
- drag.maximumY: root.height
- drag.axis: Drag.YAxis
- }
- }
-
- WebView {
- id: inspector
- visible: false
- 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
- }
- }
- ]
- }
+ id: window
+ title: "Ethereum"
+ width: 900
+ height: 600
+ minimumHeight: 300
+
+ property alias url: webview.url
+ property alias webView: webview
+
+ Item {
+ objectName: "root"
+ id: root
+ anchors.fill: parent
+ state: "inspectorShown"
+
+ WebView {
+ objectName: "webView"
+ id: webview
+ anchors.fill: parent
+ /*
+ 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)
+ // TODO move to messaging.js
+ var data = JSON.parse(message.data)
+
+ try {
+ 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 "transact":
+ require(5)
+
+ // TODO this will change to 6 soon with sec being teh first argument
+ var tx = eth.transact(data.args[0], data.args[1],data.args[2],data.args[3],data.args[4])
+ postData(data._seed, tx)
+ break
+ case "create":
+ postData(data._seed, null)
+
+ break
+ case "getStorage":
+ require(2);
+
+ var stateObject = eth.getStateObject(data.args[0])
+ var storage = stateObject.getStorage(data.args[1])
+ postData(data._seed, storage)
+
+ break
+ case "getBalance":
+ require(1);
+
+ postData(data._seed, eth.getStateObject(data.args[0]).Value());
+
+ break
+ case "getKey":
+ var keys = eth.getKey()
+ postData(data._seed, keys)
+ break
+ case "watch":
+ require(1)
+ eth.watch(data.args[0], data.args[1]);
+ break
+ case "disconnect":
+ require(1)
+ postData(data._seed, null)
+ break;
+ }
+ } catch(e) {
+ console.log(data.call + ": " + e)
+
+ postData(data._seed, null);
+ }
+ }
+
+ function require(args, num) {
+ if(args.length < num) {
+ throw("required argument count of "+num+" got "+args.length);
+ }
+ }
+ function postData(seed, data) {
+ webview.experimental.postMessage(JSON.stringify({data: data, _seed: seed}))
+ }
+ function postEvent(event, data) {
+ webview.experimental.postMessage(JSON.stringify({data: data, _event: event}))
+ }
+
+ function onNewBlockCb(block) {
+ postEvent("block:new", block)
+ }
+ function onObjectChangeCb(stateObject) {
+ postEvent("object:change", stateObject)
+ }
+ }
+
+ Rectangle {
+ id: sizeGrip
+ color: "gray"
+ visible: false
+ height: 10
+ anchors {
+ left: root.left
+ right: root.right
+ }
+ y: Math.round(root.height * 2 / 3)
+
+ MouseArea {
+ anchors.fill: parent
+ drag.target: sizeGrip
+ drag.minimumY: 0
+ drag.maximumY: root.height
+ drag.axis: Drag.YAxis
+ }
+ }
+
+ WebView {
+ id: inspector
+ visible: false
+ 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
+ }
+ }
+ ]
+ }
}