diff options
author | Marek Kotewicz <marek.kotewicz@gmail.com> | 2015-01-21 00:48:08 +0800 |
---|---|---|
committer | Marek Kotewicz <marek.kotewicz@gmail.com> | 2015-01-21 00:48:08 +0800 |
commit | 689630d261bcaea0e192c0d4c229c1b71c2aaf0f (patch) | |
tree | db91d8b8f24bcbfdd138b7956a5c9b6c570564e1 /lib/contract.js | |
parent | 5c79ee4446640301f2688f886a1612865571ee01 (diff) | |
parent | 848c54dc4713d5c29993f1c41d16cd334e18081d (diff) | |
download | dexon-689630d261bcaea0e192c0d4c229c1b71c2aaf0f.tar dexon-689630d261bcaea0e192c0d4c229c1b71c2aaf0f.tar.gz dexon-689630d261bcaea0e192c0d4c229c1b71c2aaf0f.tar.bz2 dexon-689630d261bcaea0e192c0d4c229c1b71c2aaf0f.tar.lz dexon-689630d261bcaea0e192c0d4c229c1b71c2aaf0f.tar.xz dexon-689630d261bcaea0e192c0d4c229c1b71c2aaf0f.tar.zst dexon-689630d261bcaea0e192c0d4c229c1b71c2aaf0f.zip |
Merge commit '53b4fda16d0b191be8ab986379a328aa38aaf916' into natspec
Diffstat (limited to 'lib/contract.js')
-rw-r--r-- | lib/contract.js | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/contract.js b/lib/contract.js index 744fc88a4..67fb407ad 100644 --- a/lib/contract.js +++ b/lib/contract.js @@ -53,12 +53,16 @@ var contract = function (address, desc) { var contract = {}; desc.forEach(function (method) { - contract[method.name] = function () { + + var displayName = abi.methodDisplayName(method.name); + var typeName = abi.methodTypeName(method.name); + + var impl = function () { var params = Array.prototype.slice.call(arguments); - var parsed = inputParser[method.name].apply(null, params); + var parsed = inputParser[displayName][typeName].apply(null, params); var onSuccess = function (result) { - return outputParser[method.name](result); + return outputParser[displayName][typeName](result); }; return { @@ -75,11 +79,18 @@ var contract = function (address, desc) { extra.to = address; return abi.methodSignature(desc, method.name).then(function (signature) { extra.data = signature.slice(0, 2 + ETH_METHOD_SIGNATURE_LENGTH * 2) + parsed; + web3._currentAbi = desc; return web3.eth.transact(extra).then(onSuccess); }); } }; }; + + if (contract[displayName] === undefined) { + contract[displayName] = impl; + } + + contract[displayName][typeName] = impl; }); return contract; |