diff options
author | Greg Hysen <greg.hysen@gmail.com> | 2018-12-20 05:01:22 +0800 |
---|---|---|
committer | Greg Hysen <greg.hysen@gmail.com> | 2019-01-15 02:49:44 +0800 |
commit | e9a82905e35041d36c4c9be75e11c0399ee96b89 (patch) | |
tree | bd49ab279ae96fb0248b252e55399f3ce50c4793 /packages/utils/src/abi_encoder/evm_data_types/tuple.ts | |
parent | f8684d6a776724d0172c30126a7277885ed4e966 (diff) | |
download | dexon-sol-tools-e9a82905e35041d36c4c9be75e11c0399ee96b89.tar dexon-sol-tools-e9a82905e35041d36c4c9be75e11c0399ee96b89.tar.gz dexon-sol-tools-e9a82905e35041d36c4c9be75e11c0399ee96b89.tar.bz2 dexon-sol-tools-e9a82905e35041d36c4c9be75e11c0399ee96b89.tar.lz dexon-sol-tools-e9a82905e35041d36c4c9be75e11c0399ee96b89.tar.xz dexon-sol-tools-e9a82905e35041d36c4c9be75e11c0399ee96b89.tar.zst dexon-sol-tools-e9a82905e35041d36c4c9be75e11c0399ee96b89.zip |
Abi Encoder tests fixed + added a signature parser for cases where MethodAbi/DataItems are not readily available
Diffstat (limited to 'packages/utils/src/abi_encoder/evm_data_types/tuple.ts')
-rw-r--r-- | packages/utils/src/abi_encoder/evm_data_types/tuple.ts | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/packages/utils/src/abi_encoder/evm_data_types/tuple.ts b/packages/utils/src/abi_encoder/evm_data_types/tuple.ts index 31593c882..587653f49 100644 --- a/packages/utils/src/abi_encoder/evm_data_types/tuple.ts +++ b/packages/utils/src/abi_encoder/evm_data_types/tuple.ts @@ -1,10 +1,11 @@ import { DataItem, SolidityTypes } from 'ethereum-types'; +import * as _ from 'lodash'; import { DataTypeFactory } from '../abstract_data_types/interfaces'; import { AbstractSetDataType } from '../abstract_data_types/types/set'; export class TupleDataType extends AbstractSetDataType { - private readonly _signature: string; + //private readonly _signature: string; public static matchType(type: string): boolean { return type === SolidityTypes.Tuple; @@ -15,10 +16,18 @@ export class TupleDataType extends AbstractSetDataType { if (!TupleDataType.matchType(dataItem.type)) { throw new Error(`Tried to instantiate Tuple with bad input: ${dataItem}`); } - this._signature = this._computeSignatureOfMembers(); + //this._signature = } - public getSignature(): string { - return this._signature; + public getSignatureType(): string { + return this._computeSignatureOfMembers(false); + } + + public getSignature(detailed?: boolean): string { + if (_.isEmpty(this.getDataItem().name) || !detailed) return this.getSignatureType(); + const name = this.getDataItem().name; + const shortName = name.indexOf('.') > 0 ? name.substr(name.lastIndexOf('.') + 1) : name; + const detailedSignature = `${shortName} ${this._computeSignatureOfMembers(detailed)}`; + return detailedSignature; } } |