diff options
author | Greg Hysen <greg.hysen@gmail.com> | 2018-11-10 10:59:27 +0800 |
---|---|---|
committer | Greg Hysen <greg.hysen@gmail.com> | 2018-11-29 08:38:10 +0800 |
commit | 41e01e98064b129f588d72ed25267f4865c58f5c (patch) | |
tree | 194e741b271d863d88d18c9b14471f336f43b633 /packages/order-utils/test/abi/data_type.ts | |
parent | 0835cf0ea2bb3c2c18d2a5d44ec914e2945af1b0 (diff) | |
download | dexon-sol-tools-41e01e98064b129f588d72ed25267f4865c58f5c.tar dexon-sol-tools-41e01e98064b129f588d72ed25267f4865c58f5c.tar.gz dexon-sol-tools-41e01e98064b129f588d72ed25267f4865c58f5c.tar.bz2 dexon-sol-tools-41e01e98064b129f588d72ed25267f4865c58f5c.tar.lz dexon-sol-tools-41e01e98064b129f588d72ed25267f4865c58f5c.tar.xz dexon-sol-tools-41e01e98064b129f588d72ed25267f4865c58f5c.tar.zst dexon-sol-tools-41e01e98064b129f588d72ed25267f4865c58f5c.zip |
making progress on basic example
Diffstat (limited to 'packages/order-utils/test/abi/data_type.ts')
-rw-r--r-- | packages/order-utils/test/abi/data_type.ts | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/packages/order-utils/test/abi/data_type.ts b/packages/order-utils/test/abi/data_type.ts index 201eb89f9..c1e352508 100644 --- a/packages/order-utils/test/abi/data_type.ts +++ b/packages/order-utils/test/abi/data_type.ts @@ -95,15 +95,17 @@ export abstract class MemberDataType extends DataType { private members: DataType[]; private isArray: boolean; protected arrayLength: number | undefined; + protected arrayElementType: string | undefined; - public constructor(dataItem: DataItem, isArray: boolean = false, arrayLength?: number) { + public constructor(dataItem: DataItem, isArray: boolean = false, arrayLength?: number, arrayElementType?: string) { super(dataItem); this.memberMap = {}; this.members = []; this.isArray = isArray; this.arrayLength = arrayLength; + this.arrayElementType = arrayElementType; if (isArray && arrayLength !== undefined) { [this.members, this.memberMap] = this.createMembersWithLength(dataItem, arrayLength); } else if (!isArray) { @@ -119,10 +121,10 @@ export abstract class MemberDataType extends DataType { let members: DataType[] = []; let memberMap: MemberMap = {}; - _.each(dataItem.components, (dataItem: DataItem) => { + _.each(dataItem.components, (memberItem: DataItem) => { const childDataItem = { - type: dataItem.type, - name: `${dataItem.name}.${dataItem.name}`, + type: memberItem.type, + name: `${dataItem.name}.${memberItem.name}`, } as DataItem; const child = DataTypeFactory.create(childDataItem, this); members.push(child); @@ -133,12 +135,13 @@ export abstract class MemberDataType extends DataType { } private createMembersWithLength(dataItem: DataItem, length: number): [DataType[], MemberMap] { + console.log(dataItem); let members: DataType[] = []; let memberMap: MemberMap = {}; const range = _.range(length); _.each(range, (idx: number) => { const childDataItem = { - type: dataItem.type, + type: this.arrayElementType, name: `${dataItem.name}[${idx.toString(10)}]`, } as DataItem; const components = dataItem.components; @@ -164,7 +167,7 @@ export abstract class MemberDataType extends DataType { } let members = this.members; - if (this.arrayLength === undefined) { + if (this.isArray && this.arrayLength === undefined) { [members,] = this.createMembersWithLength(this.getDataItem(), value.length); } |