@typechain/ethers-v5
Advanced tools
Comparing version 8.0.4 to 8.0.5
# @typechain/ethers-v5 | ||
## 8.0.5 | ||
### Patch Changes | ||
- 8f7144c: Constant size with length greater than 4 no longer emit as TypeScript tuples. | ||
## 8.0.4 | ||
@@ -4,0 +10,0 @@ |
@@ -10,3 +10,3 @@ import { AbiOutputParameter, AbiParameter, EvmOutputType, EvmType, TupleType } from 'typechain'; | ||
export declare function generateOutputType(options: GenerateTypeOptions, evmType: EvmOutputType): string; | ||
export declare function generateTupleType(tuple: TupleType, generator: (evmType: EvmType) => string): string; | ||
export declare function generateObjectTypeLiteral(tuple: TupleType, generator: (evmType: EvmType) => string): string; | ||
/** | ||
@@ -13,0 +13,0 @@ * Always return an array type; if there are named outputs, merge them to that type |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.generateOutputComplexTypesAsObject = exports.generateOutputComplexTypeAsArray = exports.generateOutputComplexType = exports.generateTupleType = exports.generateOutputType = exports.generateInputType = exports.generateOutputTypes = exports.generateInputTypes = void 0; | ||
exports.generateOutputComplexTypesAsObject = exports.generateOutputComplexTypeAsArray = exports.generateOutputComplexType = exports.generateObjectTypeLiteral = exports.generateOutputType = exports.generateInputType = exports.generateOutputTypes = exports.generateInputTypes = void 0; | ||
const lodash_1 = require("lodash"); | ||
@@ -37,22 +37,11 @@ const common_1 = require("../common"); | ||
case 'array': | ||
if (options.useStructs && isConstantSizeStructArray(evmType)) { | ||
return `[${Array(evmType.size).fill(evmType.structName + common_1.STRUCT_INPUT_POSTFIX)}]`; | ||
if (evmType.structName && !options.useStructs) { | ||
// This emits right-hand side of struct type declaration. | ||
// Example: `export type Struct3Struct = { input1: BigNumberish[] };` | ||
return `(${generateInputType({ ...options, useStructs: true }, evmType.itemType)})`; | ||
} | ||
else if (evmType.size !== undefined) { | ||
return `[${Array(evmType.size) | ||
.fill(generateInputType({ ...options, useStructs: true }, evmType.itemType)) | ||
.join(', ')}]`; | ||
} | ||
else { | ||
if (evmType.structName) { | ||
if (options.useStructs) { | ||
return evmType.structName + common_1.STRUCT_INPUT_POSTFIX + '[]'; | ||
} | ||
else { | ||
return `(${generateInputType({ ...options, useStructs: true }, evmType.itemType)})`; | ||
} | ||
} | ||
else { | ||
return `(${generateInputType({ ...options, useStructs: true }, evmType.itemType)})[]`; | ||
} | ||
return generateArrayOrTupleType(evmType.structName | ||
? evmType.structName + common_1.STRUCT_INPUT_POSTFIX | ||
: generateInputType({ ...options, useStructs: true }, evmType.itemType), evmType.size); | ||
} | ||
@@ -67,3 +56,3 @@ case 'boolean': | ||
} | ||
return generateTupleType(evmType, generateInputType.bind(null, { ...options, useStructs: true })); | ||
return generateObjectTypeLiteral(evmType, generateInputType.bind(null, { ...options, useStructs: true })); | ||
case 'unknown': | ||
@@ -87,23 +76,10 @@ return 'any'; | ||
case 'array': | ||
if (options.useStructs && isConstantSizeStructArray(evmType)) { | ||
return `[${Array(evmType.size).fill(evmType.structName + common_1.STRUCT_OUTPUT_POSTFIX)}]`; | ||
if (evmType.structName && !options.useStructs) { | ||
// This emits right-hand side of struct type declaration. | ||
// Example: `export type Struct3StructOutput = [BigNumber[]] & { input1: BigNumber[] };` | ||
return `(${generateOutputType({ ...options, useStructs: true }, evmType.itemType)})`; | ||
} | ||
else if (evmType.size !== undefined) { | ||
return `[${Array(evmType.size) | ||
.fill(generateOutputType({ ...options, useStructs: true }, evmType.itemType)) | ||
.join(', ')}]`; | ||
} | ||
else { | ||
if (evmType.structName) { | ||
if (options.useStructs) { | ||
return evmType.structName + common_1.STRUCT_OUTPUT_POSTFIX + '[]'; | ||
} | ||
else { | ||
return `(${generateOutputType({ ...options, useStructs: true }, evmType.itemType)})`; | ||
} | ||
} | ||
else { | ||
return `(${generateOutputType({ ...options, useStructs: true }, evmType.itemType)})[]`; | ||
} | ||
} | ||
return generateArrayOrTupleType(evmType.structName | ||
? evmType.structName + common_1.STRUCT_OUTPUT_POSTFIX | ||
: generateOutputType({ ...options, useStructs: true }, evmType.itemType), evmType.size); | ||
case 'boolean': | ||
@@ -123,6 +99,6 @@ return 'boolean'; | ||
exports.generateOutputType = generateOutputType; | ||
function generateTupleType(tuple, generator) { | ||
function generateObjectTypeLiteral(tuple, generator) { | ||
return '{' + tuple.components.map((component) => `${component.name}: ${generator(component.type)}`).join(',') + '}'; | ||
} | ||
exports.generateTupleType = generateTupleType; | ||
exports.generateObjectTypeLiteral = generateObjectTypeLiteral; | ||
/** | ||
@@ -154,5 +130,10 @@ * Always return an array type; if there are named outputs, merge them to that type | ||
exports.generateOutputComplexTypesAsObject = generateOutputComplexTypesAsObject; | ||
function isConstantSizeStructArray(evmType) { | ||
return evmType.size !== undefined && evmType.structName !== undefined; | ||
function generateArrayOrTupleType(item, length) { | ||
if (length !== undefined && length < 6) { | ||
return `[${Array(length).fill(item).join(', ')}]`; | ||
} | ||
else { | ||
return `(${item})[]`; | ||
} | ||
} | ||
//# sourceMappingURL=types.js.map |
@@ -11,3 +11,3 @@ { | ||
], | ||
"version": "8.0.4", | ||
"version": "8.0.5", | ||
"license": "MIT", | ||
@@ -14,0 +14,0 @@ "repository": "https://github.com/ethereum-ts/Typechain", |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
73255
856