aboutsummaryrefslogtreecommitdiffstats
path: root/ethereal/assets/ethereum.js
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/ethereum.js
parent64c2550b3154df7f2c75dda559d91046cb559ffd (diff)
downloadgo-tangerine-e85d5dd428c71dd45060082a9af28a40a68a25e4.tar
go-tangerine-e85d5dd428c71dd45060082a9af28a40a68a25e4.tar.gz
go-tangerine-e85d5dd428c71dd45060082a9af28a40a68a25e4.tar.bz2
go-tangerine-e85d5dd428c71dd45060082a9af28a40a68a25e4.tar.lz
go-tangerine-e85d5dd428c71dd45060082a9af28a40a68a25e4.tar.xz
go-tangerine-e85d5dd428c71dd45060082a9af28a40a68a25e4.tar.zst
go-tangerine-e85d5dd428c71dd45060082a9af28a40a68a25e4.zip
API changes
Diffstat (limited to 'ethereal/assets/ethereum.js')
-rw-r--r--ethereal/assets/ethereum.js70
1 files changed, 52 insertions, 18 deletions
diff --git a/ethereal/assets/ethereum.js b/ethereal/assets/ethereum.js
index 0f9f68c43..bb6346cab 100644
--- a/ethereal/assets/ethereum.js
+++ b/ethereal/assets/ethereum.js
@@ -1,17 +1,3 @@
-// Helper function for generating pseudo callbacks and sending data to the QML part of the application
-function postData(data, cb) {
- data._seed = Math.floor(Math.random() * 1000000)
- if(cb) {
- eth._callbacks[data._seed] = cb;
- }
-
- if(data.args === undefined) {
- data.args = [];
- }
-
- navigator.qt.postMessage(JSON.stringify(data));
-}
-
// Main Ethereum library
window.eth = {
prototype: Object(),
@@ -35,8 +21,12 @@ window.eth = {
//
// 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);
+ transact: function(sec, recipient, value, gas, gasPrice, data, cb) {
+ postData({call: "transact", args: [sec, recipient, value, gas, gasPrice, data]}, cb);
+ },
+
+ create: function(sec, value, gas, gasPrice, init, body, cb) {
+ postData({call: "create", args: [sec, value, gas, gasPrice, init, body]}, cb);
},
getStorage: function(address, storageAddress, cb) {
@@ -47,10 +37,39 @@ window.eth = {
postData({call: "getKey"}, cb);
},
- watch: function(address) {
- postData({call: "watch", args: [address]});
+ getBalance: function(address, cb) {
+ postData({call: "getBalance", args: [address]}, cb);
+ },
+
+ watch: function(address, storageAddrOrCb, cb) {
+ var ev = "changed:"+address;
+
+ if(cb === undefined) {
+ cb = storageAddrOrCb;
+ storageAddrOrCb = "";
+ } else {
+ ev += ":"+storageAddrOrCb;
+ }
+
+ eth.on(ev, cb)
+
+ postData({call: "watch", args: [address, storageAddrOrCb]});
},
+ disconnect: function(address, storageAddrOrCb, cb) {
+ var ev = "changed:"+address;
+
+ if(cb === undefined) {
+ cb = storageAddrOrCb;
+ storageAddrOrCb = null;
+ } else {
+ ev += ":"+storageAddrOrCb;
+ }
+
+ eth.off(ev, cb)
+
+ postData({call: "disconnect", args: [address, storageAddrOrCb]});
+ },
on: function(event, cb) {
if(eth._onCallbacks[event] === undefined) {
@@ -61,6 +80,7 @@ window.eth = {
return this
},
+
off: function(event, cb) {
if(eth._onCallbacks[event] !== undefined) {
var callbacks = eth._onCallbacks[event];
@@ -100,6 +120,20 @@ function debug(/**/) {
document.getElementById("debug").innerHTML += "<br>" + msg
}
+// Helper function for generating pseudo callbacks and sending data to the QML part of the application
+function postData(data, cb) {
+ data._seed = Math.floor(Math.random() * 1000000)
+ if(cb) {
+ eth._callbacks[data._seed] = cb;
+ }
+
+ if(data.args === undefined) {
+ data.args = [];
+ }
+
+ navigator.qt.postMessage(JSON.stringify(data));
+}
+
navigator.qt.onmessage = function(ev) {
var data = JSON.parse(ev.data)