From 2af1a92096d7af2b4eced619550ff12cdb1d09b0 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Mon, 18 Apr 2016 18:35:55 +0100 Subject: [PATCH] Decode response ABI only if there supposed to be return values --- assets/js/universal-dapp.js | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/assets/js/universal-dapp.js b/assets/js/universal-dapp.js index f104b9aa8c..8ec6e455d8 100644 --- a/assets/js/universal-dapp.js +++ b/assets/js/universal-dapp.js @@ -352,23 +352,26 @@ UniversalDApp.prototype.getCallButton = function(args) { clearOutput($result); $result.append(getReturnOutput(outputObj)).append(getGasUsedOutput(result.vm)); - try { - var outputTypes = []; - for (var i = 0; i < args.abi.outputs.length; i++) { - outputTypes.push(args.abi.outputs[i].type); + // Only decode if there supposed to be fields + if (args.abi.outputs.length > 0) { + try { + 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) { replaceOutput($result, getReturnOutput(result));