Decode response ABI only if there supposed to be return values

pull/1/head
Alex Beregszaszi 9 years ago
parent bbd07fd7ee
commit 2af1a92096
  1. 35
      assets/js/universal-dapp.js

@ -352,23 +352,26 @@ UniversalDApp.prototype.getCallButton = function(args) {
clearOutput($result); clearOutput($result);
$result.append(getReturnOutput(outputObj)).append(getGasUsedOutput(result.vm)); $result.append(getReturnOutput(outputObj)).append(getGasUsedOutput(result.vm));
try { // Only decode if there supposed to be fields
var outputTypes = []; if (args.abi.outputs.length > 0) {
for (var i = 0; i < args.abi.outputs.length; i++) { try {
outputTypes.push(args.abi.outputs[i].type); var outputTypes = [];
for (var i = 0; i < args.abi.outputs.length; i++) {
outputTypes.push(args.abi.outputs[i].type);
}
// decode data
var decodedObj = EthJS.ABI.rawDecode(null, null, outputTypes, result.vm.return);
// format decoded data
decodedObj = EthJS.ABI.stringify(outputTypes, decodedObj);
for (var i = 0; i < outputTypes.length; i++) {
decodedObj[i] = outputTypes[i] + ': ' + decodedObj[i];
}
$result.append(getDecodedOutput(decodedObj));
} catch (e) {
} }
// decode data
var decodedObj = EthJS.ABI.rawDecode(null, null, outputTypes, result.vm.return);
// format decoded data
decodedObj = EthJS.ABI.stringify(outputTypes, decodedObj);
for (var i = 0; i < outputTypes.length; i++) {
decodedObj[i] = outputTypes[i] + ': ' + decodedObj[i];
}
$result.append(getDecodedOutput(decodedObj));
} catch (e) {
} }
} else if (args.abi.constant && !isConstructor) { } else if (args.abi.constant && !isConstructor) {
replaceOutput($result, getReturnOutput(result)); replaceOutput($result, getReturnOutput(result));

Loading…
Cancel
Save