|
|
@ -141,7 +141,6 @@ var toAbiInput = function (json, methodName, params) { |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
bytes = "0x" + padLeft(index.toString(16), 2); |
|
|
|
var method = json[index]; |
|
|
|
|
|
|
|
for (var i = 0; i < method.inputs.length; i++) { |
|
|
@ -260,9 +259,22 @@ var outputParser = function (json) { |
|
|
|
return parser; |
|
|
|
}; |
|
|
|
|
|
|
|
var methodSignature = function (json, name) { |
|
|
|
var method = json[findMethodIndex(json, name)]; |
|
|
|
var result = name + '('; |
|
|
|
var inputTypes = method.inputs.map(function (inp) { |
|
|
|
return inp.type; |
|
|
|
}); |
|
|
|
result += inputTypes.join(','); |
|
|
|
result += ')'; |
|
|
|
|
|
|
|
return web3.sha3(result); |
|
|
|
}; |
|
|
|
|
|
|
|
module.exports = { |
|
|
|
inputParser: inputParser, |
|
|
|
outputParser: outputParser |
|
|
|
outputParser: outputParser, |
|
|
|
methodSignature: methodSignature |
|
|
|
}; |
|
|
|
|
|
|
|
},{}],2:[function(require,module,exports){ |
|
|
@ -418,8 +430,10 @@ var contract = function (address, desc) { |
|
|
|
call: function (extra) { |
|
|
|
extra = extra || {}; |
|
|
|
extra.to = address; |
|
|
|
extra.data = parsed; |
|
|
|
return web3.eth.call(extra).then(onSuccess); |
|
|
|
return abi.methodSignature(desc, method.name).then(function (signature) { |
|
|
|
extra.data = signature.slice(0, 10) + parsed; |
|
|
|
return web3.eth.call(extra).then(onSuccess); |
|
|
|
}); |
|
|
|
}, |
|
|
|
transact: function (extra) { |
|
|
|
extra = extra || {}; |
|
|
|