diff options
author | Leonid Logvinov <logvinov.leon@gmail.com> | 2018-02-28 06:23:36 +0800 |
---|---|---|
committer | Leonid Logvinov <logvinov.leon@gmail.com> | 2018-02-28 06:23:36 +0800 |
commit | ce677fd55a964101e9c9641cc34841ada5ceecbd (patch) | |
tree | e16815b2d4dc3ee5a7dcd29aa44825e492a9b088 /packages/website/ts | |
parent | 2da7f82171be76b36bac0500fb6dd78ba1669603 (diff) | |
download | dexon-sol-tools-ce677fd55a964101e9c9641cc34841ada5ceecbd.tar.gz dexon-sol-tools-ce677fd55a964101e9c9641cc34841ada5ceecbd.tar.zst dexon-sol-tools-ce677fd55a964101e9c9641cc34841ada5ceecbd.zip |
Fix a bug with displaying solidity functions returning multiple return values
Diffstat (limited to 'packages/website/ts')
-rw-r--r-- | packages/website/ts/utils/doxity_utils.ts | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/packages/website/ts/utils/doxity_utils.ts b/packages/website/ts/utils/doxity_utils.ts index 5f1d02132..35ce05672 100644 --- a/packages/website/ts/utils/doxity_utils.ts +++ b/packages/website/ts/utils/doxity_utils.ts @@ -45,11 +45,17 @@ export const doxityUtils = { const methods: SolidityMethod[] = _.map<DoxityAbiDoc, SolidityMethod>( doxityMethods, (doxityMethod: DoxityAbiDoc) => { - // We assume that none of our functions returns more then a single value - const outputIfExists = !_.isUndefined(doxityMethod.outputs) ? doxityMethod.outputs[0] : undefined; - const returnTypeIfExists = !_.isUndefined(outputIfExists) - ? this._convertType(outputIfExists.type) - : undefined; + const outputs = !_.isUndefined(doxityMethod.outputs) ? doxityMethod.outputs : []; + let returnTypeIfExists: Type; + if (outputs.length === 0) { + // no-op. It's already undefined + } else if (outputs.length === 1) { + const outputsType = outputs[0].type; + returnTypeIfExists = this._convertType(outputsType); + } else { + const outputsType = `[${_.map(outputs, output => output.type).join(', ')}]`; + returnTypeIfExists = this._convertType(outputsType); + } // For ZRXToken, we want to convert it to zrxToken, rather then simply zRXToken const callPath = contractName !== 'ZRXToken' |