diff options
author | Marek Kotewicz <marek.kotewicz@gmail.com> | 2015-01-28 21:55:39 +0800 |
---|---|---|
committer | Marek Kotewicz <marek.kotewicz@gmail.com> | 2015-01-28 21:55:39 +0800 |
commit | 61e8ae2f7be3ced902007a4aa09ce9130c31b33e (patch) | |
tree | eabcffc2733c3f03257f159bf79c5a53027ec742 /dist/ethereum.js | |
parent | 2544d2c952dc003d62bdb99a554b3fa576b202c5 (diff) | |
download | dexon-61e8ae2f7be3ced902007a4aa09ce9130c31b33e.tar dexon-61e8ae2f7be3ced902007a4aa09ce9130c31b33e.tar.gz dexon-61e8ae2f7be3ced902007a4aa09ce9130c31b33e.tar.bz2 dexon-61e8ae2f7be3ced902007a4aa09ce9130c31b33e.tar.lz dexon-61e8ae2f7be3ced902007a4aa09ce9130c31b33e.tar.xz dexon-61e8ae2f7be3ced902007a4aa09ce9130c31b33e.tar.zst dexon-61e8ae2f7be3ced902007a4aa09ce9130c31b33e.zip |
events init
Diffstat (limited to 'dist/ethereum.js')
-rw-r--r-- | dist/ethereum.js | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/dist/ethereum.js b/dist/ethereum.js index 0c065ac89..0d62f5060 100644 --- a/dist/ethereum.js +++ b/dist/ethereum.js @@ -74,6 +74,14 @@ var filterFunctions = function (json) { }); }; +/// Filters all events form input abi +/// @returns abi array with filtered objects of type 'event' +var filterEvents = function (json) { + return json.filter(function (current) { + return current.type === 'event'; + }); +}; + /// @param string string to be padded /// @param number of characters that result string should have /// @param sign, by default 0 @@ -415,7 +423,8 @@ module.exports = { methodDisplayName: methodDisplayName, methodTypeName: methodTypeName, getMethodWithName: getMethodWithName, - filterFunctions: filterFunctions + filterFunctions: filterFunctions, + filterEvents: filterEvents }; @@ -507,6 +516,7 @@ var contract = function (address, desc) { }); + // create contract functions abi.filterFunctions(desc).forEach(function (method) { var displayName = abi.methodDisplayName(method.name); @@ -561,6 +571,31 @@ var contract = function (address, desc) { }); + + // create contract events + abi.filterEvents(desc).forEach(function (event) { + + // TODO: rename these methods, cause they are used not only for methods + var displayName = abi.methodDisplayName(event.name); + var typeName = abi.methodTypeName(event.name); + + var impl = function (options) { + var o = options || {}; + o.address = o.address || address; + o.topics = o.topics || []; + o.topics.push(abi.methodSignature(event.name)); + + return web3.eth.watch(o); + }; + + if (result[displayName] === undefined) { + result[displayName] = impl; + } + + result[displayName][typeName] = impl; + + }); + return result; }; |