diff options
Diffstat (limited to 'packages/utils/src/abi_encoder/abstract_data_types')
-rw-r--r-- | packages/utils/src/abi_encoder/abstract_data_types/index.ts | 5 | ||||
-rw-r--r-- | packages/utils/src/abi_encoder/abstract_data_types/types/blob.ts (renamed from packages/utils/src/abi_encoder/abstract_data_types/payload_data_type.ts) | 14 | ||||
-rw-r--r-- | packages/utils/src/abi_encoder/abstract_data_types/types/index.ts | 3 | ||||
-rw-r--r-- | packages/utils/src/abi_encoder/abstract_data_types/types/pointer.ts (renamed from packages/utils/src/abi_encoder/abstract_data_types/dependent_data_type.ts) | 16 | ||||
-rw-r--r-- | packages/utils/src/abi_encoder/abstract_data_types/types/set.ts (renamed from packages/utils/src/abi_encoder/abstract_data_types/member_data_type.ts) | 41 |
5 files changed, 41 insertions, 38 deletions
diff --git a/packages/utils/src/abi_encoder/abstract_data_types/index.ts b/packages/utils/src/abi_encoder/abstract_data_types/index.ts index 9ad568134..d1c7d93e4 100644 --- a/packages/utils/src/abi_encoder/abstract_data_types/index.ts +++ b/packages/utils/src/abi_encoder/abstract_data_types/index.ts @@ -1,5 +1,4 @@ export * from './interfaces'; export * from './data_type'; -export * from './dependent_data_type'; -export * from './member_data_type'; -export * from './payload_data_type'; +import * as AbstractDataTypes from './types'; +export { AbstractDataTypes }; diff --git a/packages/utils/src/abi_encoder/abstract_data_types/payload_data_type.ts b/packages/utils/src/abi_encoder/abstract_data_types/types/blob.ts index fa420bc74..f4246c893 100644 --- a/packages/utils/src/abi_encoder/abstract_data_types/payload_data_type.ts +++ b/packages/utils/src/abi_encoder/abstract_data_types/types/blob.ts @@ -1,13 +1,13 @@ import { DataItem } from 'ethereum-types'; import * as _ from 'lodash'; -import { CalldataBlock, PayloadCalldataBlock, RawCalldata } from '../calldata'; -import { DecodingRules } from '../utils/rules'; +import { CalldataBlock, CalldataBlocks, RawCalldata } from '../../calldata'; +import { DecodingRules } from '../../utils/rules'; -import { DataType } from './data_type'; -import { DataTypeFactory } from './interfaces'; +import { DataType } from '../data_type'; +import { DataTypeFactory } from '../interfaces'; -export abstract class PayloadDataType extends DataType { +export abstract class Blob extends DataType { protected _hasConstantSize: boolean; public constructor(dataItem: DataItem, factory: DataTypeFactory, hasConstantSize: boolean) { @@ -15,12 +15,12 @@ export abstract class PayloadDataType extends DataType { this._hasConstantSize = hasConstantSize; } - public generateCalldataBlock(value: any, parentBlock?: CalldataBlock): PayloadCalldataBlock { + public generateCalldataBlock(value: any, parentBlock?: CalldataBlock): CalldataBlocks.Blob { const encodedValue = this.encodeValue(value); const name = this.getDataItem().name; const signature = this.getSignature(); const parentName = parentBlock ? parentBlock.getName() : ''; - const block = new PayloadCalldataBlock(name, signature, parentName, encodedValue); + const block = new CalldataBlocks.Blob(name, signature, parentName, encodedValue); return block; } diff --git a/packages/utils/src/abi_encoder/abstract_data_types/types/index.ts b/packages/utils/src/abi_encoder/abstract_data_types/types/index.ts new file mode 100644 index 000000000..958582dae --- /dev/null +++ b/packages/utils/src/abi_encoder/abstract_data_types/types/index.ts @@ -0,0 +1,3 @@ +export * from './blob'; +export * from './pointer'; +export * from './set'; diff --git a/packages/utils/src/abi_encoder/abstract_data_types/dependent_data_type.ts b/packages/utils/src/abi_encoder/abstract_data_types/types/pointer.ts index 7649b1836..47efac521 100644 --- a/packages/utils/src/abi_encoder/abstract_data_types/dependent_data_type.ts +++ b/packages/utils/src/abi_encoder/abstract_data_types/types/pointer.ts @@ -2,14 +2,14 @@ import { DataItem } from 'ethereum-types'; import * as ethUtil from 'ethereumjs-util'; import * as _ from 'lodash'; -import { CalldataBlock, DependentCalldataBlock, RawCalldata } from '../calldata'; -import * as Constants from '../utils/constants'; -import { DecodingRules } from '../utils/rules'; +import { CalldataBlock, CalldataBlocks, RawCalldata } from '../../calldata'; +import * as Constants from '../../utils/constants'; +import { DecodingRules } from '../../utils/rules'; -import { DataType } from './data_type'; -import { DataTypeFactory } from './interfaces'; +import { DataType } from '../data_type'; +import { DataTypeFactory } from '../interfaces'; -export abstract class DependentDataType extends DataType { +export abstract class Pointer extends DataType { protected _dependency: DataType; protected _parent: DataType; private readonly _isStatic: boolean; @@ -21,7 +21,7 @@ export abstract class DependentDataType extends DataType { this._isStatic = true; } - public generateCalldataBlock(value: any, parentBlock?: CalldataBlock): DependentCalldataBlock { + public generateCalldataBlock(value: any, parentBlock?: CalldataBlock): CalldataBlocks.Pointer { if (parentBlock === undefined) { throw new Error(`DependentDataType requires a parent block to generate its block`); } @@ -29,7 +29,7 @@ export abstract class DependentDataType extends DataType { const name = this.getDataItem().name; const signature = this.getSignature(); const parentName = parentBlock ? parentBlock.getName() : ''; - const block = new DependentCalldataBlock(name, signature, parentName, dependencyBlock, parentBlock); + const block = new CalldataBlocks.Pointer(name, signature, parentName, dependencyBlock, parentBlock); return block; } diff --git a/packages/utils/src/abi_encoder/abstract_data_types/member_data_type.ts b/packages/utils/src/abi_encoder/abstract_data_types/types/set.ts index dacdbf8af..77fd7b3ea 100644 --- a/packages/utils/src/abi_encoder/abstract_data_types/member_data_type.ts +++ b/packages/utils/src/abi_encoder/abstract_data_types/types/set.ts @@ -2,16 +2,17 @@ import { DataItem } from 'ethereum-types'; import * as ethUtil from 'ethereumjs-util'; import * as _ from 'lodash'; -import { BigNumber } from '../../configured_bignumber'; -import { CalldataBlock, MemberCalldataBlock, RawCalldata } from '../calldata'; -import * as Constants from '../utils/constants'; -import { DecodingRules } from '../utils/rules'; +import { BigNumber } from '../../../configured_bignumber'; +import { CalldataBlock, CalldataBlocks, RawCalldata } from '../../calldata'; +import * as Constants from '../../utils/constants'; +import { DecodingRules } from '../../utils/rules'; -import { DataType } from './data_type'; -import { DependentDataType } from './dependent_data_type'; -import { DataTypeFactory, MemberIndexByName } from './interfaces'; +import { DataType } from '../data_type'; +import { DataTypeFactory, MemberIndexByName } from '../interfaces'; -export abstract class MemberDataType extends DataType { +import { Pointer } from './pointer'; + +export abstract class Set extends DataType { protected readonly _arrayLength: number | undefined; protected readonly _arrayElementType: string | undefined; private readonly _memberIndexByName: MemberIndexByName; @@ -38,7 +39,7 @@ export abstract class MemberDataType extends DataType { } } - public generateCalldataBlock(value: any[] | object, parentBlock?: CalldataBlock): MemberCalldataBlock { + public generateCalldataBlock(value: any[] | object, parentBlock?: CalldataBlock): CalldataBlocks.Set { const block = value instanceof Array ? this._generateCalldataBlockFromArray(value, parentBlock) @@ -94,13 +95,13 @@ export abstract class MemberDataType extends DataType { // Search for dependent members const dependentMember = _.find(this._members, (member: DataType) => { - return member instanceof DependentDataType; + return member instanceof Pointer; }); const isStatic = dependentMember === undefined; // static if we couldn't find a dependent member return isStatic; } - protected _generateCalldataBlockFromArray(value: any[], parentBlock?: CalldataBlock): MemberCalldataBlock { + protected _generateCalldataBlockFromArray(value: any[], parentBlock?: CalldataBlock): CalldataBlocks.Set { // Sanity check length if (this._arrayLength !== undefined && value.length !== this._arrayLength) { throw new Error( @@ -111,7 +112,7 @@ export abstract class MemberDataType extends DataType { } const parentName = parentBlock === undefined ? '' : parentBlock.getName(); - const methodBlock: MemberCalldataBlock = new MemberCalldataBlock( + const methodBlock: CalldataBlocks.Set = new CalldataBlocks.Set( this.getDataItem().name, this.getSignature(), parentName, @@ -128,23 +129,23 @@ export abstract class MemberDataType extends DataType { methodBlock.setHeader(lenBuf); } - const memberBlocks: CalldataBlock[] = []; + const memberCalldataBlocks: CalldataBlock[] = []; _.each(members, (member: DataType, idx: number) => { const block = member.generateCalldataBlock(value[idx], methodBlock); - memberBlocks.push(block); + memberCalldataBlocks.push(block); }); - methodBlock.setMembers(memberBlocks); + methodBlock.setMembers(memberCalldataBlocks); return methodBlock; } - protected _generateCalldataBlockFromObject(obj: object, parentBlock?: CalldataBlock): MemberCalldataBlock { + protected _generateCalldataBlockFromObject(obj: object, parentBlock?: CalldataBlock): CalldataBlocks.Set { const parentName = parentBlock === undefined ? '' : parentBlock.getName(); - const methodBlock: MemberCalldataBlock = new MemberCalldataBlock( + const methodBlock: CalldataBlocks.Set = new CalldataBlocks.Set( this.getDataItem().name, this.getSignature(), parentName, ); - const memberBlocks: CalldataBlock[] = []; + const memberCalldataBlocks: CalldataBlock[] = []; const childMap = _.cloneDeep(this._memberIndexByName); _.forOwn(obj, (value: any, key: string) => { if (!(key in childMap)) { @@ -153,7 +154,7 @@ export abstract class MemberDataType extends DataType { ); } const block = this._members[this._memberIndexByName[key]].generateCalldataBlock(value, methodBlock); - memberBlocks.push(block); + memberCalldataBlocks.push(block); delete childMap[key]; }); @@ -161,7 +162,7 @@ export abstract class MemberDataType extends DataType { throw new Error(`Could not assign tuple to object: missing keys ${Object.keys(childMap)}`); } - methodBlock.setMembers(memberBlocks); + methodBlock.setMembers(memberCalldataBlocks); return methodBlock; } |