(typeName: TypeName, structs: Record<string, AbiStruct>, enums: Record<string, AbiEnum>)
| 5 | // import { bitsRequired, elementaryToTypeDef } from '../lib/helpers'; |
| 6 | |
| 7 | export function convertFieldType(typeName: TypeName, structs: Record<string, AbiStruct>, enums: Record<string, AbiEnum>): AbiType { |
| 8 | const { type, baseTypeName, name, namePath, length } = typeName; |
| 9 | switch(type) { |
| 10 | case 'ArrayTypeName': |
| 11 | const baseType = this.convertFieldType(baseTypeName); |
| 12 | const size = (baseType.size && length) ? length.number * baseType.size : null |
| 13 | return { |
| 14 | meta: 'array', |
| 15 | baseType, |
| 16 | length: length && length.number, |
| 17 | dynamic: size == null, |
| 18 | size |
| 19 | } as AbiArray |
| 20 | case 'ElementaryTypeName': return elementaryToTypeDef(name) as AbiElementaryType; |
| 21 | case 'UserDefinedTypeName': return structs[namePath] || enums[namePath] || null; |
| 22 | } |
| 23 | } |
| 24 | |
| 25 | export class ParserWrapper { |
| 26 | enums: Record<string, AbiEnum> = {} |
no test coverage detected