diff --git a/ethereal/assets/ethereum.js b/ethereal/assets/ethereum.js
index 64a7ff47c..e83d252b2 100644
--- a/ethereal/assets/ethereum.js
+++ b/ethereal/assets/ethereum.js
@@ -36,6 +36,7 @@ window.eth = {
postData({call: "getKey"}, cb);
},
+
getBalanceAt: function(address, cb) {
postData({call: "getBalance", args: [address]}, cb);
},
@@ -101,7 +102,13 @@ window.eth = {
var callbacks = eth._onCallbacks[event];
if(callbacks !== undefined) {
for(var i = 0; i < callbacks.length; i++) {
- callbacks[i](data);
+ // Figure out whether the returned data was an array
+ // array means multiple return arguments (multiple params)
+ if(data instanceof Array) {
+ callbacks[i].apply(this, data);
+ } else {
+ callbacks[i].call(this, data);
+ }
}
}
},
@@ -109,6 +116,11 @@ window.eth = {
window.eth._callbacks = {}
window.eth._onCallbacks = {}
+function hello() {
+ debug("hello")
+ window.dataTest = true;
+}
+
function debug(/**/) {
var args = arguments;
var msg = ""
@@ -120,6 +132,7 @@ function debug(/**/) {
}
}
+ postData({call:"debug", args:[msg]})
document.getElementById("debug").innerHTML += "
" + msg
}
@@ -146,8 +159,14 @@ navigator.qt.onmessage = function(ev) {
if(data._seed) {
var cb = eth._callbacks[data._seed];
if(cb) {
- // Call the callback
- cb(data.data);
+ // Figure out whether the returned data was an array
+ // array means multiple return arguments (multiple params)
+ if(data.data instanceof Array) {
+ cb.apply(this, data.data)
+ } else {
+ cb.call(this, data.data)
+ }
+
// Remove the "trigger" callback
delete eth._callbacks[ev._seed];
}
@@ -211,3 +230,4 @@ String.prototype.hex2bin = function() {
String.prototype.num2bin = function() {
return ("0x"+parseInt(this).toString(16)).bin()
}
+
diff --git a/ethereal/assets/qml/webapp.qml b/ethereal/assets/qml/webapp.qml
index 4bac12ef0..2267ab4bf 100644
--- a/ethereal/assets/qml/webapp.qml
+++ b/ethereal/assets/qml/webapp.qml
@@ -41,7 +41,7 @@ ApplicationWindow {
experimental.preferences.developerExtrasEnabled: true
experimental.userScripts: [ui.assetPath("ethereum.js")]
experimental.onMessageReceived: {
- //console.log("[onMessageReceived]: ", message.data)
+ console.log("[onMessageReceived]: ", message.data)
// TODO move to messaging.js
var data = JSON.parse(message.data)
@@ -98,6 +98,15 @@ ApplicationWindow {
window[key] = data.args[key];
}
}
+ break;
+ case "debug":
+ console.log(data.args[0]);
+ break;
+ case "test":
+ console.log("in")
+ webview.experimental.evaluateJavaScript("hello()")
+ console.log("out")
+ break;
}
} catch(e) {
console.log(data.call + ": " + e)
@@ -124,7 +133,10 @@ ApplicationWindow {
function onObjectChangeCb(stateObject) {
postEvent("object:"+stateObject.address(), stateObject)
}
- function onStorageChangeCb() {
+ function onStorageChangeCb(storageObject) {
+ console.log("storage object cb", storageObject)
+ var ev = ["storage", storageObject.stateAddress, storageObject.address].join(":");
+ postEvent(ev, [storageObject.address, storageObject.value])
}
}
diff --git a/ethereal/assets/samplecoin/samplecoin.html b/ethereal/assets/samplecoin/samplecoin.html
index 02e2bd6ea..fb0c22c7f 100644
--- a/ethereal/assets/samplecoin/samplecoin.html
+++ b/ethereal/assets/samplecoin/samplecoin.html
@@ -5,9 +5,11 @@
+