Date: Sat, 20 Jun 2020 23:55:43 +0530
Subject: [PATCH 21/64] Rename to v5
---
packages/target-ethers-v5/README.md | 6 +++---
packages/target-ethers-v5/package.json | 11 +++++++----
2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/packages/target-ethers-v5/README.md b/packages/target-ethers-v5/README.md
index 4430209fd..f46bc6afa 100644
--- a/packages/target-ethers-v5/README.md
+++ b/packages/target-ethers-v5/README.md
@@ -1,9 +1,9 @@
-# Typechain target Ethers-v4
+# Typechain target Ethers-v5
-
TypeChain target Ethers-v4
- 🔌 TypeScript bindings for Ethers 4.x.x smartcontracts
+ TypeChain target Ethers-v5
+ 🔌 TypeScript bindings for Ethers 5.x.x smartcontracts
diff --git a/packages/target-ethers-v5/package.json b/packages/target-ethers-v5/package.json
index 893f0bd80..7273bb99b 100644
--- a/packages/target-ethers-v5/package.json
+++ b/packages/target-ethers-v5/package.json
@@ -1,6 +1,6 @@
{
- "name": "@typechain/ethers-v4",
- "description": "🔌 TypeChain target for ethers-v4",
+ "name": "@typechain/ethers-v5",
+ "description": "🔌 TypeChain target for ethers-v5",
"keywords": [
"ethers",
"ethersjs",
@@ -58,9 +58,12 @@
"prettier": "^2.0.1",
"sinon": "^8.0.1",
"sinon-chai": "^3.3.0",
+ "test-utils": "1.0.0",
"ts-node": "^8.5.4",
- "typescript": "3.9.0-beta",
"typechain": "^2.0.0",
- "test-utils": "1.0.0"
+ "typescript": "3.9.0-beta"
+ },
+ "dependencies": {
+ "ethers": "^5.0.2"
}
}
From 59e38bd2b0ca27b9def78c7fe04eb9285badd1fe Mon Sep 17 00:00:00 2001
From: zemse
Date: Sun, 21 Jun 2020 02:05:50 +0530
Subject: [PATCH 22/64] Rename Contract file suffix back to Factory
---
packages/target-ethers-v5/src/index.ts | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/packages/target-ethers-v5/src/index.ts b/packages/target-ethers-v5/src/index.ts
index 34233162b..adffd8919 100644
--- a/packages/target-ethers-v5/src/index.ts
+++ b/packages/target-ethers-v5/src/index.ts
@@ -102,10 +102,10 @@ export default class Ethers extends TsGeneratorPlugin {
}
genContractFactoryFile(contract: Contract, abi: any, bytecode?: BytecodeWithLinkReferences) {
- this.contractFiles.push(`${contract.name}Contract`)
+ this.contractFiles.push(`${contract.name}`)
return {
- path: join(this.outDirAbs, `${contract.name}Contract.ts`),
+ path: join(this.outDirAbs, `${contract.name}Factory.ts`),
contents: codegenContractFactory(contract, abi, bytecode),
}
}
@@ -125,7 +125,7 @@ export default class Ethers extends TsGeneratorPlugin {
...abstractFactoryFiles,
{
path: join(this.outDirAbs, 'index.ts'),
- contents: this.contractFiles.map((fileName) => `export * from './${fileName}'`).join('\n'),
+ contents: this.contractFiles.map((fileName) => `export * from './${fileName}Factory'`).join('\n'),
},
]
}
From d298842efe91d07d24823bda5d7dc07174ef98fd Mon Sep 17 00:00:00 2001
From: zemse
Date: Sun, 21 Jun 2020 02:07:16 +0530
Subject: [PATCH 23/64] Remove existing contract constructor
---
packages/target-ethers-v5/src/codegen/index.ts | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/packages/target-ethers-v5/src/codegen/index.ts b/packages/target-ethers-v5/src/codegen/index.ts
index 67b603020..10f8b5860 100644
--- a/packages/target-ethers-v5/src/codegen/index.ts
+++ b/packages/target-ethers-v5/src/codegen/index.ts
@@ -113,13 +113,7 @@ export function codegenContractFactory(contract: Contract, abi: any, bytecode?:
import { Provider, TransactionRequest } from '@ethersproject/providers';
import { ${ethersContractImports.join(', ')} } from "@ethersproject/contracts";
- import { ${contract.name} as _${contract.name} } from "./${contract.name}";
-
- export class ${contract.name} extends _${contract.name} {
- constructor(addressOrName: string, signerOrProvider?: Signer | Provider | undefined) {
- super(addressOrName, _abi, signerOrProvider);
- }
- }
+ import { ${contract.name} } from "./${contract.name}";
export class ${contract.name}Factory extends ContractFactory {
${generateFactoryConstructor(contract, bytecode)}
From a34fe8d5d4c6c8c41fb8b7701f4e67849b26c8f8 Mon Sep 17 00:00:00 2001
From: zemse
Date: Sun, 21 Jun 2020 02:08:31 +0530
Subject: [PATCH 24/64] Fix ethers constructor too many arguments error
---
packages/target-ethers-v5/src/codegen/index.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/packages/target-ethers-v5/src/codegen/index.ts b/packages/target-ethers-v5/src/codegen/index.ts
index 10f8b5860..38916f3a3 100644
--- a/packages/target-ethers-v5/src/codegen/index.ts
+++ b/packages/target-ethers-v5/src/codegen/index.ts
@@ -92,8 +92,8 @@ export function codegenContractFactory(contract: Contract, abi: any, bytecode?:
const constructorArgNamesWithoutOverrides =
contract.constructor && contract.constructor[0] ? generateParamNames(contract.constructor[0].inputs) : ''
const constructorArgNames = constructorArgNamesWithoutOverrides
- ? `${constructorArgNamesWithoutOverrides}, overrides`
- : 'overrides'
+ ? `${constructorArgNamesWithoutOverrides}, overrides || {}`
+ : 'overrides || {}'
if (!bytecode) return codegenAbstractContractFactory(contract, abi)
// tsc with noUnusedLocals would complain about unused imports
From d2812306ee73d88725c060ce5c8ea498ba499af0 Mon Sep 17 00:00:00 2001
From: zemse
Date: Tue, 23 Jun 2020 15:52:17 +0530
Subject: [PATCH 25/64] Add staticCall (ethers-io/ethers.js#395)
---
.../target-ethers-v5/src/codegen/functions.ts | 18 +++++++++---------
packages/target-ethers-v5/src/codegen/index.ts | 16 +++++++++++++---
packages/target-ethers-v5/src/codegen/types.ts | 5 +++++
3 files changed, 27 insertions(+), 12 deletions(-)
diff --git a/packages/target-ethers-v5/src/codegen/functions.ts b/packages/target-ethers-v5/src/codegen/functions.ts
index 0c85e8055..c4158e8d0 100644
--- a/packages/target-ethers-v5/src/codegen/functions.ts
+++ b/packages/target-ethers-v5/src/codegen/functions.ts
@@ -1,23 +1,23 @@
import { FunctionDeclaration, isConstant, isConstantFn, FunctionDocumentation, getSignatureForFn } from 'typechain'
-import { generateInputTypes, generateOutputTypes } from './types'
+import { generateInputTypes, generateOutputTypes, GenerateFunctionOptions } from './types'
-export function codegenFunctions(returnResultObject: boolean, fns: FunctionDeclaration[]): string {
+export function codegenFunctions(options: GenerateFunctionOptions, fns: FunctionDeclaration[]): string {
if (fns.length === 1) {
- return generateFunction(returnResultObject, fns[0])
+ return generateFunction(options, fns[0])
}
- return codegenForOverloadedFunctions(returnResultObject, fns)
+ return codegenForOverloadedFunctions(options, fns)
}
-export function codegenForOverloadedFunctions(returnResultObject: boolean, fns: FunctionDeclaration[]): string {
- return fns.map((fn) => generateFunction(returnResultObject, fn, `"${getSignatureForFn(fn)}"`)).join('\n')
+export function codegenForOverloadedFunctions(options: GenerateFunctionOptions, fns: FunctionDeclaration[]): string {
+ return fns.map((fn) => generateFunction(options, fn, `"${getSignatureForFn(fn)}"`)).join('\n')
}
function isPayable(fn: FunctionDeclaration): boolean {
return fn.stateMutability === 'payable'
}
-function generateFunction(returnResultObject: boolean, fn: FunctionDeclaration, overloadedName?: string): string {
+function generateFunction(options: GenerateFunctionOptions, fn: FunctionDeclaration, overloadedName?: string): string {
return `
${generateFunctionDocumentation(fn.documentation)}
${overloadedName ?? fn.name}(${generateInputTypes(fn.inputs)}${
@@ -25,8 +25,8 @@ function generateFunction(returnResultObject: boolean, fn: FunctionDeclaration,
? `overrides?: ${isPayable(fn) ? 'PayableOverrides' : 'Overrides'}`
: 'overrides?: CallOverrides'
}): Promise<${
- fn.stateMutability === 'pure' || fn.stateMutability === 'view'
- ? generateOutputTypes(returnResultObject, fn.outputs)
+ options.isStaticCall || fn.stateMutability === 'pure' || fn.stateMutability === 'view'
+ ? generateOutputTypes(!!options.returnResultObject, fn.outputs)
: 'ContractTransaction'
}>;
`
diff --git a/packages/target-ethers-v5/src/codegen/index.ts b/packages/target-ethers-v5/src/codegen/index.ts
index 38916f3a3..aebaad8a6 100644
--- a/packages/target-ethers-v5/src/codegen/index.ts
+++ b/packages/target-ethers-v5/src/codegen/index.ts
@@ -12,7 +12,9 @@ import { codegenFunctions } from './functions'
export function codegenContractTypings(contract: Contract) {
const contractImports: string[] = ['Contract', 'ContractTransaction']
- const allFunctions = values(contract.functions).map(codegenFunctions.bind(null, true)).join('')
+ const allFunctions = values(contract.functions)
+ .map(codegenFunctions.bind(null, { returnResultObject: true }))
+ .join('')
if (allFunctions.match(/\W Overrides(\W|$)/)) contractImports.push('Overrides')
if (allFunctions.match(/\WPayableOverrides(\W|$)/)) contractImports.push('PayableOverrides')
@@ -55,10 +57,18 @@ export function codegenContractTypings(contract: Contract) {
interface: ${contract.name}Interface;
functions: {
- ${values(contract.functions).map(codegenFunctions.bind(null, true)).join('\n')}
+ ${values(contract.functions)
+ .map(codegenFunctions.bind(null, { returnResultObject: true }))
+ .join('\n')}
};
- ${values(contract.functions).map(codegenFunctions.bind(null, false)).join('\n')}
+ ${values(contract.functions).map(codegenFunctions.bind(null, {})).join('\n')}
+
+ staticCall: {
+ ${values(contract.functions)
+ .map(codegenFunctions.bind(null, { isStaticCall: true }))
+ .join('\n')}
+ };
filters: {
${values(contract.events)
diff --git a/packages/target-ethers-v5/src/codegen/types.ts b/packages/target-ethers-v5/src/codegen/types.ts
index d3ad78c67..60b59445f 100644
--- a/packages/target-ethers-v5/src/codegen/types.ts
+++ b/packages/target-ethers-v5/src/codegen/types.ts
@@ -1,5 +1,10 @@
import { EvmType, EvmOutputType, TupleType, AbiParameter, AbiOutputParameter } from 'typechain'
+export interface GenerateFunctionOptions {
+ returnResultObject?: boolean
+ isStaticCall?: boolean
+}
+
export function generateInputTypes(input: Array): string {
if (input.length === 0) {
return ''
From 72e6681a21e3b196b3cd8648b72e917910bdf5ce Mon Sep 17 00:00:00 2001
From: zemse
Date: Tue, 23 Jun 2020 15:54:19 +0530
Subject: [PATCH 26/64] Fix provider import
---
packages/target-ethers-v5/src/codegen/index.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/target-ethers-v5/src/codegen/index.ts b/packages/target-ethers-v5/src/codegen/index.ts
index aebaad8a6..1f796d40f 100644
--- a/packages/target-ethers-v5/src/codegen/index.ts
+++ b/packages/target-ethers-v5/src/codegen/index.ts
@@ -155,7 +155,7 @@ export function codegenContractFactory(contract: Contract, abi: any, bytecode?:
export function codegenAbstractContractFactory(contract: Contract, abi: any): string {
return `
import { Contract, Signer } from "ethers";
- import { Provider } from "ethers/providers";
+ import { Provider } from "@ethersproject/providers";
import { ${contract.name} } from "./${contract.name}";
From 8575219ceb6c7530ef8ba1201be106eb5872bf8b Mon Sep 17 00:00:00 2001
From: zemse
Date: Tue, 23 Jun 2020 15:58:07 +0530
Subject: [PATCH 27/64] Remove .DS_Store from .gitignore
---
.gitignore | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/.gitignore b/.gitignore
index 61f5693d4..0c04882ee 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,5 +13,4 @@ examples/web3-v1/types
examples/truffle-v4/types
examples/truffle-v4/migrations
examples/truffle-v5/types
-examples/truffle-v5/migrations
-.DS_Store
\ No newline at end of file
+examples/truffle-v5/migrations
\ No newline at end of file
From 1614cb3f82d4ff1c6719c62aee9004e20e9b0baf Mon Sep 17 00:00:00 2001
From: zemse
Date: Sun, 28 Jun 2020 14:43:30 +0530
Subject: [PATCH 28/64] Add encodeFunctionData function overloads
---
packages/target-ethers-v5/src/codegen/index.ts | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/packages/target-ethers-v5/src/codegen/index.ts b/packages/target-ethers-v5/src/codegen/index.ts
index 1f796d40f..1aa115874 100644
--- a/packages/target-ethers-v5/src/codegen/index.ts
+++ b/packages/target-ethers-v5/src/codegen/index.ts
@@ -35,6 +35,11 @@ export function codegenContractTypings(contract: Contract) {
.join('\n')}
};
+ ${values(contract.functions)
+ .map((v) => v[0])
+ .map(generateEncodeFunctionDataOverload)
+ .join('\n')}
+
events: {
${values(contract.events)
.map((v) => v[0])
@@ -232,6 +237,18 @@ function generateFunctionSignature(fn: FunctionDeclaration): string {
return `${fn.name}(${fn.inputs.map((input: any) => input.type.originalType).join(',')})`
}
+function generateEncodeFunctionDataOverload(fn: FunctionDeclaration): string {
+ const methodInputs = [`functionFragment: '${fn.name}'`]
+
+ if (fn.inputs.length) {
+ methodInputs.push(`values: [${fn.inputs.map((input) => generateInputType(input.type)).join(', ')}]`)
+ } else {
+ methodInputs.push('values?: void')
+ }
+
+ return `encodeFunctionData(${methodInputs.join(', ')}): string;`
+}
+
function generateParamNames(params: Array): string {
return params.map((param) => param.name).join(', ')
}
From 170806b4ce23ef1cf7c6d096dbdc369b41aaece0 Mon Sep 17 00:00:00 2001
From: zemse
Date: Sun, 28 Jun 2020 14:57:43 +0530
Subject: [PATCH 29/64] Add decodeFunctionResult function overloads
---
packages/target-ethers-v5/src/codegen/index.ts | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/packages/target-ethers-v5/src/codegen/index.ts b/packages/target-ethers-v5/src/codegen/index.ts
index 1aa115874..8d9efef73 100644
--- a/packages/target-ethers-v5/src/codegen/index.ts
+++ b/packages/target-ethers-v5/src/codegen/index.ts
@@ -25,7 +25,7 @@ export function codegenContractTypings(contract: Contract) {
import { ${contractImports.join(', ')} } from '@ethersproject/contracts';
import { BytesLike } from '@ethersproject/bytes';
import { Listener, Provider } from '@ethersproject/providers';
- import { FunctionFragment, EventFragment } from '@ethersproject/abi';
+ import { FunctionFragment, EventFragment, Result } from '@ethersproject/abi';
interface ${contract.name}Interface extends ethers.utils.Interface {
functions: {
@@ -40,6 +40,11 @@ export function codegenContractTypings(contract: Contract) {
.map(generateEncodeFunctionDataOverload)
.join('\n')}
+ ${values(contract.functions)
+ .map((v) => v[0])
+ .map(generateDecodeFunctionResultOverload)
+ .join('\n')}
+
events: {
${values(contract.events)
.map((v) => v[0])
@@ -249,6 +254,10 @@ function generateEncodeFunctionDataOverload(fn: FunctionDeclaration): string {
return `encodeFunctionData(${methodInputs.join(', ')}): string;`
}
+function generateDecodeFunctionResultOverload(fn: FunctionDeclaration): string {
+ return `decodeFunctionResult(functionFragment: '${fn.name}', data: BytesLike): Result;`
+}
+
function generateParamNames(params: Array): string {
return params.map((param) => param.name).join(', ')
}
From c25f9bf4ac47d2332f239ef856e049cf39280132 Mon Sep 17 00:00:00 2001
From: zemse
Date: Sun, 28 Jun 2020 14:59:27 +0530
Subject: [PATCH 30/64] Add getEvent function overloads
---
packages/target-ethers-v5/src/codegen/index.ts | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/packages/target-ethers-v5/src/codegen/index.ts b/packages/target-ethers-v5/src/codegen/index.ts
index 8d9efef73..a4ddc6078 100644
--- a/packages/target-ethers-v5/src/codegen/index.ts
+++ b/packages/target-ethers-v5/src/codegen/index.ts
@@ -51,6 +51,11 @@ export function codegenContractTypings(contract: Contract) {
.map(generateInterfaceEventDescription)
.join('\n')}
};
+
+ ${values(contract.events)
+ .map((v) => v[0])
+ .map(generateGetEventOverload)
+ .join('\n')}
}
export class ${contract.name} extends Contract {
@@ -292,3 +297,7 @@ function generateEventTypes(eventArgs: EventArgDeclaration[]) {
function generateEventArgType(eventArg: EventArgDeclaration): string {
return eventArg.isIndexed ? `${generateInputType(eventArg.type)} | null` : 'null'
}
+
+function generateGetEventOverload(event: EventDeclaration): string {
+ return `getEvent(nameOrSignatureOrTopic: '${event.name}'): EventFragment;`
+}
From 6c1ed8ce92f08f4ba0f02d2401aac374ccd0881d Mon Sep 17 00:00:00 2001
From: zemse
Date: Sun, 28 Jun 2020 15:02:25 +0530
Subject: [PATCH 31/64] Move GenerateFunctionOptions to functions.ts
---
packages/target-ethers-v5/src/codegen/functions.ts | 7 ++++++-
packages/target-ethers-v5/src/codegen/types.ts | 5 -----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/packages/target-ethers-v5/src/codegen/functions.ts b/packages/target-ethers-v5/src/codegen/functions.ts
index c4158e8d0..8fb00d51b 100644
--- a/packages/target-ethers-v5/src/codegen/functions.ts
+++ b/packages/target-ethers-v5/src/codegen/functions.ts
@@ -1,5 +1,10 @@
import { FunctionDeclaration, isConstant, isConstantFn, FunctionDocumentation, getSignatureForFn } from 'typechain'
-import { generateInputTypes, generateOutputTypes, GenerateFunctionOptions } from './types'
+import { generateInputTypes, generateOutputTypes } from './types'
+
+interface GenerateFunctionOptions {
+ returnResultObject?: boolean
+ isStaticCall?: boolean
+}
export function codegenFunctions(options: GenerateFunctionOptions, fns: FunctionDeclaration[]): string {
if (fns.length === 1) {
diff --git a/packages/target-ethers-v5/src/codegen/types.ts b/packages/target-ethers-v5/src/codegen/types.ts
index 60b59445f..d3ad78c67 100644
--- a/packages/target-ethers-v5/src/codegen/types.ts
+++ b/packages/target-ethers-v5/src/codegen/types.ts
@@ -1,10 +1,5 @@
import { EvmType, EvmOutputType, TupleType, AbiParameter, AbiOutputParameter } from 'typechain'
-export interface GenerateFunctionOptions {
- returnResultObject?: boolean
- isStaticCall?: boolean
-}
-
export function generateInputTypes(input: Array): string {
if (input.length === 0) {
return ''
From 654e976fc6fc8f9d4d720c94b9b853e8517abacb Mon Sep 17 00:00:00 2001
From: zemse
Date: Sun, 28 Jun 2020 16:09:06 +0530
Subject: [PATCH 32/64] Add a helper method to push optional imports
---
.../target-ethers-v5/src/codegen/index.ts | 20 +++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/packages/target-ethers-v5/src/codegen/index.ts b/packages/target-ethers-v5/src/codegen/index.ts
index a4ddc6078..550de921d 100644
--- a/packages/target-ethers-v5/src/codegen/index.ts
+++ b/packages/target-ethers-v5/src/codegen/index.ts
@@ -16,9 +16,8 @@ export function codegenContractTypings(contract: Contract) {
.map(codegenFunctions.bind(null, { returnResultObject: true }))
.join('')
- if (allFunctions.match(/\W Overrides(\W|$)/)) contractImports.push('Overrides')
- if (allFunctions.match(/\WPayableOverrides(\W|$)/)) contractImports.push('PayableOverrides')
- if (allFunctions.match(/\WCallOverrides(\W|$)/)) contractImports.push('CallOverrides')
+ const optionalContractImports = ['Overrides', 'PayableOverrides', 'CallOverrides']
+ optionalContractImports.forEach((importName) => pushImportIfUsed(importName, allFunctions, contractImports))
const template = `
import { ethers, EventFilter, Signer, BigNumber, BigNumberish, PopulatedTransaction } from 'ethers';
@@ -123,15 +122,12 @@ export function codegenContractFactory(contract: Contract, abi: any, bytecode?:
// tsc with noUnusedLocals would complain about unused imports
const ethersImports: string[] = ['Signer']
- if (constructorArgs.match(/\WBytesLike(\W|$)/)) ethersImports.push('BytesLike')
- if (constructorArgs.match(/\WBigNumberish(\W|$)/)) ethersImports.push('BigNumberish')
+ const optionalEthersImports = ['BytesLike', 'BigNumberish']
+ optionalEthersImports.forEach((importName) => pushImportIfUsed(importName, constructorArgs, ethersImports))
const ethersContractImports: string[] = ['Contract', 'ContractFactory']
- if (constructorArgs.match(/\WPayableOverrides(\W|$)/)) {
- ethersContractImports.push('PayableOverrides')
- } else {
- ethersContractImports.push('Overrides')
- }
+ const optionalContractImports = ['PayableOverrides', 'Overrides']
+ optionalContractImports.forEach((importName) => pushImportIfUsed(importName, constructorArgs, ethersContractImports))
return `
import { ${ethersImports.join(', ')} } from "ethers";
@@ -301,3 +297,7 @@ function generateEventArgType(eventArg: EventArgDeclaration): string {
function generateGetEventOverload(event: EventDeclaration): string {
return `getEvent(nameOrSignatureOrTopic: '${event.name}'): EventFragment;`
}
+
+function pushImportIfUsed(importName: string, generatedCode: string, importArray: string[]): void {
+ if (new RegExp(`\\W${importName}(\\W|$)`).test(generatedCode)) importArray.push(importName)
+}
From f6ded62e5af62c53f684ea3578b882a0655baa43 Mon Sep 17 00:00:00 2001
From: zemse
Date: Sun, 28 Jun 2020 17:41:11 +0530
Subject: [PATCH 33/64] Duplicate ethers v4 tests directory
---
packages/target-ethers-v5-test/.eslintrc.js | 5 +
packages/target-ethers-v5-test/LICENSE | 8 +
packages/target-ethers-v5-test/package.json | 48 +++
.../test/DataTypesInput.test.ts | 65 ++++
.../test/Overload.test.ts | 27 ++
packages/target-ethers-v5-test/test/common.ts | 22 ++
.../target-ethers-v5-test/test/setup.test.ts | 10 +
.../target-ethers-v5-test/tsconfig.build.json | 8 +
packages/target-ethers-v5-test/tsconfig.json | 8 +
.../target-ethers-v5-test/tsconfig.types.json | 9 +
.../types/DataTypesInput.d.ts | 203 ++++++++++++
.../types/DataTypesInputFactory.ts | 300 ++++++++++++++++++
.../types/DataTypesPure.d.ts | 178 +++++++++++
.../types/DataTypesPureFactory.ts | 223 +++++++++++++
.../types/DataTypesView.d.ts | 178 +++++++++++
.../types/DataTypesViewFactory.ts | 223 +++++++++++++
.../target-ethers-v5-test/types/Events.d.ts | 105 ++++++
.../types/EventsFactory.ts | 128 ++++++++
.../types/NameMangling.d.ts | 48 +++
.../types/NameManglingFactory.ts | 32 ++
.../types/Overloads.d.ts | 57 ++++
.../types/OverloadsFactory.ts | 62 ++++
.../target-ethers-v5-test/types/Payable.d.ts | 59 ++++
.../types/PayableFactory.ts | 33 ++
.../target-ethers-v5-test/types/index.d.ts | 27 ++
25 files changed, 2066 insertions(+)
create mode 100644 packages/target-ethers-v5-test/.eslintrc.js
create mode 100644 packages/target-ethers-v5-test/LICENSE
create mode 100644 packages/target-ethers-v5-test/package.json
create mode 100644 packages/target-ethers-v5-test/test/DataTypesInput.test.ts
create mode 100644 packages/target-ethers-v5-test/test/Overload.test.ts
create mode 100644 packages/target-ethers-v5-test/test/common.ts
create mode 100644 packages/target-ethers-v5-test/test/setup.test.ts
create mode 100644 packages/target-ethers-v5-test/tsconfig.build.json
create mode 100644 packages/target-ethers-v5-test/tsconfig.json
create mode 100644 packages/target-ethers-v5-test/tsconfig.types.json
create mode 100644 packages/target-ethers-v5-test/types/DataTypesInput.d.ts
create mode 100644 packages/target-ethers-v5-test/types/DataTypesInputFactory.ts
create mode 100644 packages/target-ethers-v5-test/types/DataTypesPure.d.ts
create mode 100644 packages/target-ethers-v5-test/types/DataTypesPureFactory.ts
create mode 100644 packages/target-ethers-v5-test/types/DataTypesView.d.ts
create mode 100644 packages/target-ethers-v5-test/types/DataTypesViewFactory.ts
create mode 100644 packages/target-ethers-v5-test/types/Events.d.ts
create mode 100644 packages/target-ethers-v5-test/types/EventsFactory.ts
create mode 100644 packages/target-ethers-v5-test/types/NameMangling.d.ts
create mode 100644 packages/target-ethers-v5-test/types/NameManglingFactory.ts
create mode 100644 packages/target-ethers-v5-test/types/Overloads.d.ts
create mode 100644 packages/target-ethers-v5-test/types/OverloadsFactory.ts
create mode 100644 packages/target-ethers-v5-test/types/Payable.d.ts
create mode 100644 packages/target-ethers-v5-test/types/PayableFactory.ts
create mode 100644 packages/target-ethers-v5-test/types/index.d.ts
diff --git a/packages/target-ethers-v5-test/.eslintrc.js b/packages/target-ethers-v5-test/.eslintrc.js
new file mode 100644
index 000000000..3526285ae
--- /dev/null
+++ b/packages/target-ethers-v5-test/.eslintrc.js
@@ -0,0 +1,5 @@
+const baseConfig = require('../../.eslintrc.json')
+
+module.exports = {
+ ...baseConfig,
+}
diff --git a/packages/target-ethers-v5-test/LICENSE b/packages/target-ethers-v5-test/LICENSE
new file mode 100644
index 000000000..e17451f9b
--- /dev/null
+++ b/packages/target-ethers-v5-test/LICENSE
@@ -0,0 +1,8 @@
+Copyright 2020 Krzysztof Kaczor
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
diff --git a/packages/target-ethers-v5-test/package.json b/packages/target-ethers-v5-test/package.json
new file mode 100644
index 000000000..45a70e872
--- /dev/null
+++ b/packages/target-ethers-v5-test/package.json
@@ -0,0 +1,48 @@
+{
+ "name": "@typechain/ethers-v5-test",
+ "private": true,
+ "version": "1.0.0",
+ "license": "MIT",
+ "scripts": {
+ "prepublishOnly": "yarn lint && yarn test && yarn build",
+ "format": "prettier --config ../../.prettierrc --ignore-path ../../.prettierignore --check \"./**/*.ts\"",
+ "format:fix": "prettier --config ../../.prettierrc --ignore-path ../../.prettierignore --write \"./**/*.ts\"",
+ "lint": "eslint --ext .ts test",
+ "lint:fix": "yarn lint --fix",
+ "typecheck": "tsc --noEmit --incremental false --composite false && tsc --noEmit --incremental false --composite false -p tsconfig.types.json",
+ "clean": "rm -rf dist contracts/* && rm -f tsconfig.build.tsbuildinfo && rm -rf build",
+ "generate-types": "../typechain/dist/cli/cli.js --target=`pwd`/../target-ethers-v4/dist/index.js --outDir ./types/ '../../contracts/compiled/*.abi'",
+ "test": "yarn generate-types && mocha --config ../../.mocharc.js",
+ "test:fix": "yarn lint:fix && yarn format:fix && yarn test && yarn typecheck"
+ },
+ "devDependencies": {
+ "@types/chai": "^4.2.7",
+ "@types/chai-as-promised": "^7.1.2",
+ "@types/chai-subset": "^1.3.3",
+ "@types/mocha": "^5.2.7",
+ "@types/sinon": "^7.5.1",
+ "@types/sinon-chai": "^3.2.3",
+ "@typescript-eslint/eslint-plugin": "^2.25.0",
+ "@typescript-eslint/parser": "^2.12.0",
+ "chai": "^4.2.0",
+ "chai-as-promised": "^7.1.1",
+ "chai-http": "^4.3.0",
+ "chai-subset": "^1.6.0",
+ "eslint": "^6.8.0",
+ "eslint-config-typestrict": "^1.0.0",
+ "eslint-plugin-no-only-tests": "^2.4.0",
+ "eslint-plugin-sonarjs": "^0.5.0",
+ "ganache-cli": "^6.9.1",
+ "mocha": "^6.2.2",
+ "prettier": "^2.0.1",
+ "sinon": "^8.0.1",
+ "sinon-chai": "^3.3.0",
+ "test-utils": "1.0.0",
+ "ts-node": "^8.5.4",
+ "typechain": "^2.0.0",
+ "typescript": "3.9.0-beta"
+ },
+ "dependencies": {
+ "ethers": "^4.0.46"
+ }
+}
diff --git a/packages/target-ethers-v5-test/test/DataTypesInput.test.ts b/packages/target-ethers-v5-test/test/DataTypesInput.test.ts
new file mode 100644
index 000000000..e090cb78f
--- /dev/null
+++ b/packages/target-ethers-v5-test/test/DataTypesInput.test.ts
@@ -0,0 +1,65 @@
+import { typedAssert, q18 } from 'test-utils'
+import { BigNumber, formatBytes32String } from 'ethers/utils'
+
+import { createNewBlockchain, deployContract } from './common'
+import { DataTypesInput } from '../types/DataTypesInput'
+
+describe('DataTypesInput', () => {
+ let contract!: DataTypesInput
+ let ganache: any
+ beforeEach(async () => {
+ const { ganache: _ganache, signer } = await createNewBlockchain()
+ ganache = _ganache
+ contract = await deployContract(signer, 'DataTypesInput')
+ })
+
+ afterEach(() => ganache.close())
+
+ it('works', async () => {
+ typedAssert(await contract.input_uint8('42'), 42)
+ typedAssert(await contract.input_uint8(42), 42)
+
+ typedAssert(await contract.input_uint256(q18(1)), new BigNumber(q18(1)))
+ typedAssert(await contract.input_uint256(1), new BigNumber(1))
+
+ typedAssert(await contract.input_int8('42'), 42)
+ typedAssert(await contract.input_int8(42), 42)
+
+ typedAssert(await contract.input_int256(q18(1)), new BigNumber(q18(1)))
+ typedAssert(await contract.input_int256(1), new BigNumber('1'))
+
+ typedAssert(await contract.input_bool(true), true)
+
+ typedAssert(
+ await contract.input_address('0x70b144972C5Ef6CB941A5379240B74239c418CD4'),
+ '0x70b144972C5Ef6CB941A5379240B74239c418CD4',
+ )
+
+ typedAssert(await contract.input_bytes1('0xaa'), '0xaa')
+ typedAssert(await contract.input_bytes1([0]), '0x00')
+
+ typedAssert(
+ await contract.input_bytes(formatBytes32String('TypeChain')),
+ '0x54797065436861696e0000000000000000000000000000000000000000000000',
+ )
+
+ typedAssert(await contract.input_string('TypeChain'), 'TypeChain')
+
+ typedAssert(await contract.input_stat_array(['1', '2', '3']), [1, 2, 3])
+ typedAssert(await contract.input_stat_array([1, 2, 3]), [1, 2, 3])
+
+ // TODO: this reverts for some weird reason
+ // typedAssert(await contract.input_tuple('1', '2'), { 0: new BigNumber('1'), 1: new BigNumber('2') })
+ // typedAssert(await contract.input_tuple(1, 2), { 0: '1', 1: '2' })
+
+ typedAssert(await contract.input_struct({ uint256_0: new BigNumber('1'), uint256_1: new BigNumber('2') }), {
+ 0: new BigNumber('1'),
+ 1: new BigNumber('2'),
+ uint256_0: new BigNumber('1'),
+ uint256_1: new BigNumber('2'),
+ })
+
+ typedAssert(await contract.input_enum('1'), 1)
+ typedAssert(await contract.input_enum(1), 1)
+ })
+})
diff --git a/packages/target-ethers-v5-test/test/Overload.test.ts b/packages/target-ethers-v5-test/test/Overload.test.ts
new file mode 100644
index 000000000..505138867
--- /dev/null
+++ b/packages/target-ethers-v5-test/test/Overload.test.ts
@@ -0,0 +1,27 @@
+import { typedAssert } from 'test-utils'
+
+import { createNewBlockchain, deployContract } from './common'
+import { Overloads } from '../types/Overloads'
+import { BigNumber } from 'ethers/utils'
+
+describe('Overloads', () => {
+ let contract: Overloads
+ let ganache: any
+ beforeEach(async () => {
+ const { ganache: _ganache, signer } = await createNewBlockchain()
+ ganache = _ganache
+ contract = await deployContract(signer, 'Overloads')
+ })
+
+ afterEach(() => ganache.close())
+
+ it('works with 1st overload', async () => {
+ const result = await contract.functions['overload1(int256)'](1)
+ typedAssert(result, new BigNumber(1))
+ })
+
+ it('works with 2n overload', async () => {
+ const result = await contract.functions['overload1(uint256,uint256)'](1, 2)
+ typedAssert(result, new BigNumber(3))
+ })
+})
diff --git a/packages/target-ethers-v5-test/test/common.ts b/packages/target-ethers-v5-test/test/common.ts
new file mode 100644
index 000000000..2de7b97ac
--- /dev/null
+++ b/packages/target-ethers-v5-test/test/common.ts
@@ -0,0 +1,22 @@
+import { JsonRpcProvider } from 'ethers/providers'
+import { ethers } from 'ethers'
+import { loadContract } from 'test-utils'
+
+const ganache = require('ganache-cli')
+
+export const GAS_LIMIT_STANDARD = 6000000
+
+export async function createNewBlockchain() {
+ const server = ganache.server()
+ server.listen(8545, () => {})
+ const provider = new JsonRpcProvider()
+ const signer = provider.getSigner(0)
+ return { ganache: server, signer }
+}
+
+export function deployContract(signer: ethers.Signer, name: string): Promise {
+ const { abi, code } = loadContract(name)
+
+ const factory = new ethers.ContractFactory(abi, code, signer)
+ return (factory.deploy() as any) as Promise
+}
diff --git a/packages/target-ethers-v5-test/test/setup.test.ts b/packages/target-ethers-v5-test/test/setup.test.ts
new file mode 100644
index 000000000..7f17163c8
--- /dev/null
+++ b/packages/target-ethers-v5-test/test/setup.test.ts
@@ -0,0 +1,10 @@
+import chai from 'chai'
+import chaiAsPromised from 'chai-as-promised'
+import sinonChai from 'sinon-chai'
+import chaiHttp from 'chai-http'
+import chaiSubset from 'chai-subset'
+
+chai.use(chaiAsPromised)
+chai.use(sinonChai)
+chai.use(chaiHttp)
+chai.use(chaiSubset)
diff --git a/packages/target-ethers-v5-test/tsconfig.build.json b/packages/target-ethers-v5-test/tsconfig.build.json
new file mode 100644
index 000000000..4e1add83d
--- /dev/null
+++ b/packages/target-ethers-v5-test/tsconfig.build.json
@@ -0,0 +1,8 @@
+{
+ "extends": "./tsconfig.json",
+ "include": ["src"],
+ "compilerOptions": {
+ "outDir": "dist",
+ "rootDir": "src"
+ }
+}
diff --git a/packages/target-ethers-v5-test/tsconfig.json b/packages/target-ethers-v5-test/tsconfig.json
new file mode 100644
index 000000000..eb180f7fb
--- /dev/null
+++ b/packages/target-ethers-v5-test/tsconfig.json
@@ -0,0 +1,8 @@
+{
+ "extends": "../../tsconfig.json",
+ "include": ["src", "test", "types"],
+ "compilerOptions": {
+ "esModuleInterop": true,
+ "skipLibCheck": true
+ }
+}
diff --git a/packages/target-ethers-v5-test/tsconfig.types.json b/packages/target-ethers-v5-test/tsconfig.types.json
new file mode 100644
index 000000000..f9a76de17
--- /dev/null
+++ b/packages/target-ethers-v5-test/tsconfig.types.json
@@ -0,0 +1,9 @@
+{
+ "extends": "../../tsconfig.json",
+ "include": ["types"],
+ "exclude": ["node_modules"],
+ "compilerOptions": {
+ "esModuleInterop": true,
+ "lib": ["ES2018", "DOM"],
+ }
+}
diff --git a/packages/target-ethers-v5-test/types/DataTypesInput.d.ts b/packages/target-ethers-v5-test/types/DataTypesInput.d.ts
new file mode 100644
index 000000000..6ab731907
--- /dev/null
+++ b/packages/target-ethers-v5-test/types/DataTypesInput.d.ts
@@ -0,0 +1,203 @@
+/* Generated by ts-generator ver. 0.0.8 */
+/* tslint:disable */
+
+import { Contract, ContractTransaction, EventFilter, Signer } from "ethers";
+import { Listener, Provider } from "ethers/providers";
+import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils";
+import {
+ TransactionOverrides,
+ TypedEventDescription,
+ TypedFunctionDescription
+} from ".";
+
+interface DataTypesInputInterface extends Interface {
+ functions: {
+ input_address: TypedFunctionDescription<{
+ encode([input1]: [string]): string;
+ }>;
+
+ input_bool: TypedFunctionDescription<{
+ encode([input1]: [boolean]): string;
+ }>;
+
+ input_bytes: TypedFunctionDescription<{
+ encode([input1]: [Arrayish]): string;
+ }>;
+
+ input_bytes1: TypedFunctionDescription<{
+ encode([input1]: [Arrayish]): string;
+ }>;
+
+ input_enum: TypedFunctionDescription<{
+ encode([input1]: [BigNumberish]): string;
+ }>;
+
+ input_int256: TypedFunctionDescription<{
+ encode([input1]: [BigNumberish]): string;
+ }>;
+
+ input_int8: TypedFunctionDescription<{
+ encode([input1]: [BigNumberish]): string;
+ }>;
+
+ input_stat_array: TypedFunctionDescription<{
+ encode([input1]: [BigNumberish[]]): string;
+ }>;
+
+ input_string: TypedFunctionDescription<{
+ encode([input1]: [string]): string;
+ }>;
+
+ input_struct: TypedFunctionDescription<{
+ encode([input1]: [
+ { uint256_0: BigNumberish; uint256_1: BigNumberish }
+ ]): string;
+ }>;
+
+ input_tuple: TypedFunctionDescription<{
+ encode([input1, input2]: [BigNumberish, BigNumberish]): string;
+ }>;
+
+ input_uint256: TypedFunctionDescription<{
+ encode([input1]: [BigNumberish]): string;
+ }>;
+
+ input_uint8: TypedFunctionDescription<{
+ encode([input1]: [BigNumberish]): string;
+ }>;
+ };
+
+ events: {};
+}
+
+export class DataTypesInput extends Contract {
+ connect(signerOrProvider: Signer | Provider | string): DataTypesInput;
+ attach(addressOrName: string): DataTypesInput;
+ deployed(): Promise;
+
+ on(event: EventFilter | string, listener: Listener): DataTypesInput;
+ once(event: EventFilter | string, listener: Listener): DataTypesInput;
+ addListener(
+ eventName: EventFilter | string,
+ listener: Listener
+ ): DataTypesInput;
+ removeAllListeners(eventName: EventFilter | string): DataTypesInput;
+ removeListener(eventName: any, listener: Listener): DataTypesInput;
+
+ interface: DataTypesInputInterface;
+
+ functions: {
+ input_address(input1: string): Promise;
+
+ input_bool(input1: boolean): Promise;
+
+ input_bytes(input1: Arrayish): Promise;
+
+ input_bytes1(input1: Arrayish): Promise;
+
+ input_enum(input1: BigNumberish): Promise;
+
+ input_int256(input1: BigNumberish): Promise;
+
+ input_int8(input1: BigNumberish): Promise;
+
+ input_stat_array(input1: BigNumberish[]): Promise;
+
+ input_string(input1: string): Promise;
+
+ input_struct(input1: {
+ uint256_0: BigNumberish;
+ uint256_1: BigNumberish;
+ }): Promise<{
+ uint256_0: BigNumber;
+ uint256_1: BigNumber;
+ 0: BigNumber;
+ 1: BigNumber;
+ }>;
+
+ input_tuple(
+ input1: BigNumberish,
+ input2: BigNumberish
+ ): Promise<{
+ 0: BigNumber;
+ 1: BigNumber;
+ }>;
+
+ input_uint256(input1: BigNumberish): Promise;
+
+ input_uint8(input1: BigNumberish): Promise;
+ };
+
+ input_address(input1: string): Promise;
+
+ input_bool(input1: boolean): Promise;
+
+ input_bytes(input1: Arrayish): Promise;
+
+ input_bytes1(input1: Arrayish): Promise;
+
+ input_enum(input1: BigNumberish): Promise;
+
+ input_int256(input1: BigNumberish): Promise;
+
+ input_int8(input1: BigNumberish): Promise;
+
+ input_stat_array(input1: BigNumberish[]): Promise;
+
+ input_string(input1: string): Promise;
+
+ input_struct(input1: {
+ uint256_0: BigNumberish;
+ uint256_1: BigNumberish;
+ }): Promise<{
+ uint256_0: BigNumber;
+ uint256_1: BigNumber;
+ 0: BigNumber;
+ 1: BigNumber;
+ }>;
+
+ input_tuple(
+ input1: BigNumberish,
+ input2: BigNumberish
+ ): Promise<{
+ 0: BigNumber;
+ 1: BigNumber;
+ }>;
+
+ input_uint256(input1: BigNumberish): Promise;
+
+ input_uint8(input1: BigNumberish): Promise;
+
+ filters: {};
+
+ estimate: {
+ input_address(input1: string): Promise;
+
+ input_bool(input1: boolean): Promise;
+
+ input_bytes(input1: Arrayish): Promise;
+
+ input_bytes1(input1: Arrayish): Promise;
+
+ input_enum(input1: BigNumberish): Promise;
+
+ input_int256(input1: BigNumberish): Promise;
+
+ input_int8(input1: BigNumberish): Promise;
+
+ input_stat_array(input1: BigNumberish[]): Promise;
+
+ input_string(input1: string): Promise;
+
+ input_struct(input1: {
+ uint256_0: BigNumberish;
+ uint256_1: BigNumberish;
+ }): Promise;
+
+ input_tuple(input1: BigNumberish, input2: BigNumberish): Promise;
+
+ input_uint256(input1: BigNumberish): Promise;
+
+ input_uint8(input1: BigNumberish): Promise;
+ };
+}
diff --git a/packages/target-ethers-v5-test/types/DataTypesInputFactory.ts b/packages/target-ethers-v5-test/types/DataTypesInputFactory.ts
new file mode 100644
index 000000000..34f3fcc78
--- /dev/null
+++ b/packages/target-ethers-v5-test/types/DataTypesInputFactory.ts
@@ -0,0 +1,300 @@
+/* Generated by ts-generator ver. 0.0.8 */
+/* tslint:disable */
+
+import { Contract, Signer } from "ethers";
+import { Provider } from "ethers/providers";
+
+import { DataTypesInput } from "./DataTypesInput";
+
+export class DataTypesInputFactory {
+ static connect(
+ address: string,
+ signerOrProvider: Signer | Provider
+ ): DataTypesInput {
+ return new Contract(address, _abi, signerOrProvider) as DataTypesInput;
+ }
+}
+
+const _abi = [
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "input1",
+ type: "address"
+ }
+ ],
+ name: "input_address",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bool",
+ name: "input1",
+ type: "bool"
+ }
+ ],
+ name: "input_bool",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes",
+ name: "input1",
+ type: "bytes"
+ }
+ ],
+ name: "input_bytes",
+ outputs: [
+ {
+ internalType: "bytes",
+ name: "",
+ type: "bytes"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes1",
+ name: "input1",
+ type: "bytes1"
+ }
+ ],
+ name: "input_bytes1",
+ outputs: [
+ {
+ internalType: "bytes1",
+ name: "",
+ type: "bytes1"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "enum DataTypesInput.Enum1",
+ name: "input1",
+ type: "uint8"
+ }
+ ],
+ name: "input_enum",
+ outputs: [
+ {
+ internalType: "enum DataTypesInput.Enum1",
+ name: "",
+ type: "uint8"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "int256",
+ name: "input1",
+ type: "int256"
+ }
+ ],
+ name: "input_int256",
+ outputs: [
+ {
+ internalType: "int256",
+ name: "",
+ type: "int256"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "int8",
+ name: "input1",
+ type: "int8"
+ }
+ ],
+ name: "input_int8",
+ outputs: [
+ {
+ internalType: "int8",
+ name: "",
+ type: "int8"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint8[3]",
+ name: "input1",
+ type: "uint8[3]"
+ }
+ ],
+ name: "input_stat_array",
+ outputs: [
+ {
+ internalType: "uint8[3]",
+ name: "",
+ type: "uint8[3]"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "string",
+ name: "input1",
+ type: "string"
+ }
+ ],
+ name: "input_string",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ components: [
+ {
+ internalType: "uint256",
+ name: "uint256_0",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "uint256_1",
+ type: "uint256"
+ }
+ ],
+ internalType: "struct DataTypesInput.Struct1",
+ name: "input1",
+ type: "tuple"
+ }
+ ],
+ name: "input_struct",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "uint256",
+ name: "uint256_0",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "uint256_1",
+ type: "uint256"
+ }
+ ],
+ internalType: "struct DataTypesInput.Struct1",
+ name: "",
+ type: "tuple"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "input1",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "input2",
+ type: "uint256"
+ }
+ ],
+ name: "input_tuple",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "input1",
+ type: "uint256"
+ }
+ ],
+ name: "input_uint256",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint8",
+ name: "input1",
+ type: "uint8"
+ }
+ ],
+ name: "input_uint8",
+ outputs: [
+ {
+ internalType: "uint8",
+ name: "",
+ type: "uint8"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ }
+];
diff --git a/packages/target-ethers-v5-test/types/DataTypesPure.d.ts b/packages/target-ethers-v5-test/types/DataTypesPure.d.ts
new file mode 100644
index 000000000..6e81fa219
--- /dev/null
+++ b/packages/target-ethers-v5-test/types/DataTypesPure.d.ts
@@ -0,0 +1,178 @@
+/* Generated by ts-generator ver. 0.0.8 */
+/* tslint:disable */
+
+import { Contract, ContractTransaction, EventFilter, Signer } from "ethers";
+import { Listener, Provider } from "ethers/providers";
+import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils";
+import {
+ TransactionOverrides,
+ TypedEventDescription,
+ TypedFunctionDescription
+} from ".";
+
+interface DataTypesPureInterface extends Interface {
+ functions: {
+ pure_address: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ pure_bool: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ pure_bytes: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ pure_bytes1: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ pure_enum: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ pure_int256: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ pure_int8: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ pure_named: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ pure_stat_array: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ pure_string: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ pure_struct: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ pure_tuple: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ pure_uint256: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ pure_uint8: TypedFunctionDescription<{ encode([]: []): string }>;
+ };
+
+ events: {};
+}
+
+export class DataTypesPure extends Contract {
+ connect(signerOrProvider: Signer | Provider | string): DataTypesPure;
+ attach(addressOrName: string): DataTypesPure;
+ deployed(): Promise;
+
+ on(event: EventFilter | string, listener: Listener): DataTypesPure;
+ once(event: EventFilter | string, listener: Listener): DataTypesPure;
+ addListener(
+ eventName: EventFilter | string,
+ listener: Listener
+ ): DataTypesPure;
+ removeAllListeners(eventName: EventFilter | string): DataTypesPure;
+ removeListener(eventName: any, listener: Listener): DataTypesPure;
+
+ interface: DataTypesPureInterface;
+
+ functions: {
+ pure_address(): Promise;
+
+ pure_bool(): Promise;
+
+ pure_bytes(): Promise;
+
+ pure_bytes1(): Promise;
+
+ pure_enum(): Promise;
+
+ pure_int256(): Promise;
+
+ pure_int8(): Promise;
+
+ pure_named(): Promise<{
+ uint256_1: BigNumber;
+ uint256_2: BigNumber;
+ 0: BigNumber;
+ 1: BigNumber;
+ }>;
+
+ pure_stat_array(): Promise;
+
+ pure_string(): Promise;
+
+ pure_struct(): Promise<{
+ uint256_0: BigNumber;
+ uint256_1: BigNumber;
+ 0: BigNumber;
+ 1: BigNumber;
+ }>;
+
+ pure_tuple(): Promise<{
+ 0: BigNumber;
+ 1: BigNumber;
+ }>;
+
+ pure_uint256(): Promise;
+
+ pure_uint8(): Promise;
+ };
+
+ pure_address(): Promise;
+
+ pure_bool(): Promise;
+
+ pure_bytes(): Promise;
+
+ pure_bytes1(): Promise;
+
+ pure_enum(): Promise;
+
+ pure_int256(): Promise;
+
+ pure_int8(): Promise;
+
+ pure_named(): Promise<{
+ uint256_1: BigNumber;
+ uint256_2: BigNumber;
+ 0: BigNumber;
+ 1: BigNumber;
+ }>;
+
+ pure_stat_array(): Promise;
+
+ pure_string(): Promise;
+
+ pure_struct(): Promise<{
+ uint256_0: BigNumber;
+ uint256_1: BigNumber;
+ 0: BigNumber;
+ 1: BigNumber;
+ }>;
+
+ pure_tuple(): Promise<{
+ 0: BigNumber;
+ 1: BigNumber;
+ }>;
+
+ pure_uint256(): Promise;
+
+ pure_uint8(): Promise;
+
+ filters: {};
+
+ estimate: {
+ pure_address(): Promise;
+
+ pure_bool(): Promise;
+
+ pure_bytes(): Promise;
+
+ pure_bytes1(): Promise;
+
+ pure_enum(): Promise;
+
+ pure_int256(): Promise;
+
+ pure_int8(): Promise;
+
+ pure_named(): Promise;
+
+ pure_stat_array(): Promise;
+
+ pure_string(): Promise;
+
+ pure_struct(): Promise;
+
+ pure_tuple(): Promise;
+
+ pure_uint256(): Promise;
+
+ pure_uint8(): Promise;
+ };
+}
diff --git a/packages/target-ethers-v5-test/types/DataTypesPureFactory.ts b/packages/target-ethers-v5-test/types/DataTypesPureFactory.ts
new file mode 100644
index 000000000..c0ab0e7af
--- /dev/null
+++ b/packages/target-ethers-v5-test/types/DataTypesPureFactory.ts
@@ -0,0 +1,223 @@
+/* Generated by ts-generator ver. 0.0.8 */
+/* tslint:disable */
+
+import { Contract, Signer } from "ethers";
+import { Provider } from "ethers/providers";
+
+import { DataTypesPure } from "./DataTypesPure";
+
+export class DataTypesPureFactory {
+ static connect(
+ address: string,
+ signerOrProvider: Signer | Provider
+ ): DataTypesPure {
+ return new Contract(address, _abi, signerOrProvider) as DataTypesPure;
+ }
+}
+
+const _abi = [
+ {
+ inputs: [],
+ name: "pure_address",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "pure_bool",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "pure_bytes",
+ outputs: [
+ {
+ internalType: "bytes",
+ name: "",
+ type: "bytes"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "pure_bytes1",
+ outputs: [
+ {
+ internalType: "bytes1",
+ name: "",
+ type: "bytes1"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "pure_enum",
+ outputs: [
+ {
+ internalType: "enum DataTypesPure.Enum1",
+ name: "",
+ type: "uint8"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "pure_int256",
+ outputs: [
+ {
+ internalType: "int256",
+ name: "",
+ type: "int256"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "pure_int8",
+ outputs: [
+ {
+ internalType: "int8",
+ name: "",
+ type: "int8"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "pure_named",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "uint256_1",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "uint256_2",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "pure_stat_array",
+ outputs: [
+ {
+ internalType: "uint8[3]",
+ name: "",
+ type: "uint8[3]"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "pure_string",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "pure_struct",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "uint256",
+ name: "uint256_0",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "uint256_1",
+ type: "uint256"
+ }
+ ],
+ internalType: "struct DataTypesPure.Struct1",
+ name: "",
+ type: "tuple"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "pure_tuple",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "pure_uint256",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "pure_uint8",
+ outputs: [
+ {
+ internalType: "uint8",
+ name: "",
+ type: "uint8"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ }
+];
diff --git a/packages/target-ethers-v5-test/types/DataTypesView.d.ts b/packages/target-ethers-v5-test/types/DataTypesView.d.ts
new file mode 100644
index 000000000..d489c6ba3
--- /dev/null
+++ b/packages/target-ethers-v5-test/types/DataTypesView.d.ts
@@ -0,0 +1,178 @@
+/* Generated by ts-generator ver. 0.0.8 */
+/* tslint:disable */
+
+import { Contract, ContractTransaction, EventFilter, Signer } from "ethers";
+import { Listener, Provider } from "ethers/providers";
+import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils";
+import {
+ TransactionOverrides,
+ TypedEventDescription,
+ TypedFunctionDescription
+} from ".";
+
+interface DataTypesViewInterface extends Interface {
+ functions: {
+ view_address: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ view_bool: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ view_bytes: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ view_bytes1: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ view_enum: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ view_int256: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ view_int8: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ view_named: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ view_stat_array: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ view_string: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ view_struct: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ view_tuple: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ view_uint256: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ view_uint8: TypedFunctionDescription<{ encode([]: []): string }>;
+ };
+
+ events: {};
+}
+
+export class DataTypesView extends Contract {
+ connect(signerOrProvider: Signer | Provider | string): DataTypesView;
+ attach(addressOrName: string): DataTypesView;
+ deployed(): Promise;
+
+ on(event: EventFilter | string, listener: Listener): DataTypesView;
+ once(event: EventFilter | string, listener: Listener): DataTypesView;
+ addListener(
+ eventName: EventFilter | string,
+ listener: Listener
+ ): DataTypesView;
+ removeAllListeners(eventName: EventFilter | string): DataTypesView;
+ removeListener(eventName: any, listener: Listener): DataTypesView;
+
+ interface: DataTypesViewInterface;
+
+ functions: {
+ view_address(): Promise;
+
+ view_bool(): Promise;
+
+ view_bytes(): Promise;
+
+ view_bytes1(): Promise;
+
+ view_enum(): Promise;
+
+ view_int256(): Promise;
+
+ view_int8(): Promise;
+
+ view_named(): Promise<{
+ uint256_1: BigNumber;
+ uint256_2: BigNumber;
+ 0: BigNumber;
+ 1: BigNumber;
+ }>;
+
+ view_stat_array(): Promise;
+
+ view_string(): Promise;
+
+ view_struct(): Promise<{
+ uint256_0: BigNumber;
+ uint256_1: BigNumber;
+ 0: BigNumber;
+ 1: BigNumber;
+ }>;
+
+ view_tuple(): Promise<{
+ 0: BigNumber;
+ 1: BigNumber;
+ }>;
+
+ view_uint256(): Promise;
+
+ view_uint8(): Promise;
+ };
+
+ view_address(): Promise;
+
+ view_bool(): Promise;
+
+ view_bytes(): Promise;
+
+ view_bytes1(): Promise;
+
+ view_enum(): Promise;
+
+ view_int256(): Promise;
+
+ view_int8(): Promise;
+
+ view_named(): Promise<{
+ uint256_1: BigNumber;
+ uint256_2: BigNumber;
+ 0: BigNumber;
+ 1: BigNumber;
+ }>;
+
+ view_stat_array(): Promise;
+
+ view_string(): Promise;
+
+ view_struct(): Promise<{
+ uint256_0: BigNumber;
+ uint256_1: BigNumber;
+ 0: BigNumber;
+ 1: BigNumber;
+ }>;
+
+ view_tuple(): Promise<{
+ 0: BigNumber;
+ 1: BigNumber;
+ }>;
+
+ view_uint256(): Promise;
+
+ view_uint8(): Promise;
+
+ filters: {};
+
+ estimate: {
+ view_address(): Promise;
+
+ view_bool(): Promise;
+
+ view_bytes(): Promise;
+
+ view_bytes1(): Promise;
+
+ view_enum(): Promise;
+
+ view_int256(): Promise;
+
+ view_int8(): Promise;
+
+ view_named(): Promise;
+
+ view_stat_array(): Promise;
+
+ view_string(): Promise;
+
+ view_struct(): Promise;
+
+ view_tuple(): Promise;
+
+ view_uint256(): Promise;
+
+ view_uint8(): Promise;
+ };
+}
diff --git a/packages/target-ethers-v5-test/types/DataTypesViewFactory.ts b/packages/target-ethers-v5-test/types/DataTypesViewFactory.ts
new file mode 100644
index 000000000..d1a7c9e14
--- /dev/null
+++ b/packages/target-ethers-v5-test/types/DataTypesViewFactory.ts
@@ -0,0 +1,223 @@
+/* Generated by ts-generator ver. 0.0.8 */
+/* tslint:disable */
+
+import { Contract, Signer } from "ethers";
+import { Provider } from "ethers/providers";
+
+import { DataTypesView } from "./DataTypesView";
+
+export class DataTypesViewFactory {
+ static connect(
+ address: string,
+ signerOrProvider: Signer | Provider
+ ): DataTypesView {
+ return new Contract(address, _abi, signerOrProvider) as DataTypesView;
+ }
+}
+
+const _abi = [
+ {
+ inputs: [],
+ name: "view_address",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "view_bool",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "view_bytes",
+ outputs: [
+ {
+ internalType: "bytes",
+ name: "",
+ type: "bytes"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "view_bytes1",
+ outputs: [
+ {
+ internalType: "bytes1",
+ name: "",
+ type: "bytes1"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "view_enum",
+ outputs: [
+ {
+ internalType: "enum DataTypesView.Enum1",
+ name: "",
+ type: "uint8"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "view_int256",
+ outputs: [
+ {
+ internalType: "int256",
+ name: "",
+ type: "int256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "view_int8",
+ outputs: [
+ {
+ internalType: "int8",
+ name: "",
+ type: "int8"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "view_named",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "uint256_1",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "uint256_2",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "view_stat_array",
+ outputs: [
+ {
+ internalType: "uint8[3]",
+ name: "",
+ type: "uint8[3]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "view_string",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "view_struct",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "uint256",
+ name: "uint256_0",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "uint256_1",
+ type: "uint256"
+ }
+ ],
+ internalType: "struct DataTypesView.Struct1",
+ name: "",
+ type: "tuple"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "view_tuple",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "view_uint256",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "view_uint8",
+ outputs: [
+ {
+ internalType: "uint8",
+ name: "",
+ type: "uint8"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ }
+];
diff --git a/packages/target-ethers-v5-test/types/Events.d.ts b/packages/target-ethers-v5-test/types/Events.d.ts
new file mode 100644
index 000000000..21dd4fd1c
--- /dev/null
+++ b/packages/target-ethers-v5-test/types/Events.d.ts
@@ -0,0 +1,105 @@
+/* Generated by ts-generator ver. 0.0.8 */
+/* tslint:disable */
+
+import { Contract, ContractTransaction, EventFilter, Signer } from "ethers";
+import { Listener, Provider } from "ethers/providers";
+import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils";
+import {
+ TransactionOverrides,
+ TypedEventDescription,
+ TypedFunctionDescription
+} from ".";
+
+interface EventsInterface extends Interface {
+ functions: {
+ emit_anon1: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ emit_event1: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ emit_event2: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ emit_event3: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ emit_event3_overloaded: TypedFunctionDescription<{
+ encode([]: []): string;
+ }>;
+ };
+
+ events: {
+ AnonEvent1: TypedEventDescription<{
+ encodeTopics([value1]: [BigNumberish | null]): string[];
+ }>;
+
+ Event1: TypedEventDescription<{
+ encodeTopics([value1, value2]: [BigNumberish | null, null]): string[];
+ }>;
+
+ Event2: TypedEventDescription<{ encodeTopics([]: [null]): string[] }>;
+
+ Event3: TypedEventDescription<{
+ encodeTopics([value1, value2]: [boolean | null, null]): string[];
+ }>;
+ };
+}
+
+export class Events extends Contract {
+ connect(signerOrProvider: Signer | Provider | string): Events;
+ attach(addressOrName: string): Events;
+ deployed(): Promise;
+
+ on(event: EventFilter | string, listener: Listener): Events;
+ once(event: EventFilter | string, listener: Listener): Events;
+ addListener(eventName: EventFilter | string, listener: Listener): Events;
+ removeAllListeners(eventName: EventFilter | string): Events;
+ removeListener(eventName: any, listener: Listener): Events;
+
+ interface: EventsInterface;
+
+ functions: {
+ emit_anon1(overrides?: TransactionOverrides): Promise;
+
+ emit_event1(overrides?: TransactionOverrides): Promise;
+
+ emit_event2(overrides?: TransactionOverrides): Promise;
+
+ emit_event3(overrides?: TransactionOverrides): Promise;
+
+ emit_event3_overloaded(
+ overrides?: TransactionOverrides
+ ): Promise;
+ };
+
+ emit_anon1(overrides?: TransactionOverrides): Promise;
+
+ emit_event1(overrides?: TransactionOverrides): Promise;
+
+ emit_event2(overrides?: TransactionOverrides): Promise;
+
+ emit_event3(overrides?: TransactionOverrides): Promise;
+
+ emit_event3_overloaded(
+ overrides?: TransactionOverrides
+ ): Promise;
+
+ filters: {
+ AnonEvent1(value1: BigNumberish | null): EventFilter;
+
+ Event1(value1: BigNumberish | null, value2: null): EventFilter;
+
+ Event2(undefined: null): EventFilter;
+
+ Event3(value1: boolean | null, value2: null): EventFilter;
+ };
+
+ estimate: {
+ emit_anon1(): Promise;
+
+ emit_event1(): Promise;
+
+ emit_event2(): Promise;
+
+ emit_event3(): Promise;
+
+ emit_event3_overloaded(): Promise;
+ };
+}
diff --git a/packages/target-ethers-v5-test/types/EventsFactory.ts b/packages/target-ethers-v5-test/types/EventsFactory.ts
new file mode 100644
index 000000000..cec0acf94
--- /dev/null
+++ b/packages/target-ethers-v5-test/types/EventsFactory.ts
@@ -0,0 +1,128 @@
+/* Generated by ts-generator ver. 0.0.8 */
+/* tslint:disable */
+
+import { Contract, Signer } from "ethers";
+import { Provider } from "ethers/providers";
+
+import { Events } from "./Events";
+
+export class EventsFactory {
+ static connect(address: string, signerOrProvider: Signer | Provider): Events {
+ return new Contract(address, _abi, signerOrProvider) as Events;
+ }
+}
+
+const _abi = [
+ {
+ anonymous: true,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "uint256",
+ name: "value1",
+ type: "uint256"
+ }
+ ],
+ name: "AnonEvent1",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "uint256",
+ name: "value1",
+ type: "uint256"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "value2",
+ type: "uint256"
+ }
+ ],
+ name: "Event1",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ name: "Event2",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "bool",
+ name: "value1",
+ type: "bool"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "value2",
+ type: "uint256"
+ }
+ ],
+ name: "Event3",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "uint256",
+ name: "value1",
+ type: "uint256"
+ }
+ ],
+ name: "Event3",
+ type: "event"
+ },
+ {
+ inputs: [],
+ name: "emit_anon1",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "emit_event1",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "emit_event2",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "emit_event3",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "emit_event3_overloaded",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ }
+];
diff --git a/packages/target-ethers-v5-test/types/NameMangling.d.ts b/packages/target-ethers-v5-test/types/NameMangling.d.ts
new file mode 100644
index 000000000..5edbd9e8e
--- /dev/null
+++ b/packages/target-ethers-v5-test/types/NameMangling.d.ts
@@ -0,0 +1,48 @@
+/* Generated by ts-generator ver. 0.0.8 */
+/* tslint:disable */
+
+import { Contract, ContractTransaction, EventFilter, Signer } from "ethers";
+import { Listener, Provider } from "ethers/providers";
+import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils";
+import {
+ TransactionOverrides,
+ TypedEventDescription,
+ TypedFunctionDescription
+} from ".";
+
+interface NameManglingInterface extends Interface {
+ functions: {
+ works: TypedFunctionDescription<{ encode([]: []): string }>;
+ };
+
+ events: {};
+}
+
+export class NameMangling extends Contract {
+ connect(signerOrProvider: Signer | Provider | string): NameMangling;
+ attach(addressOrName: string): NameMangling;
+ deployed(): Promise;
+
+ on(event: EventFilter | string, listener: Listener): NameMangling;
+ once(event: EventFilter | string, listener: Listener): NameMangling;
+ addListener(
+ eventName: EventFilter | string,
+ listener: Listener
+ ): NameMangling;
+ removeAllListeners(eventName: EventFilter | string): NameMangling;
+ removeListener(eventName: any, listener: Listener): NameMangling;
+
+ interface: NameManglingInterface;
+
+ functions: {
+ works(): Promise;
+ };
+
+ works(): Promise;
+
+ filters: {};
+
+ estimate: {
+ works(): Promise;
+ };
+}
diff --git a/packages/target-ethers-v5-test/types/NameManglingFactory.ts b/packages/target-ethers-v5-test/types/NameManglingFactory.ts
new file mode 100644
index 000000000..f2e0b5796
--- /dev/null
+++ b/packages/target-ethers-v5-test/types/NameManglingFactory.ts
@@ -0,0 +1,32 @@
+/* Generated by ts-generator ver. 0.0.8 */
+/* tslint:disable */
+
+import { Contract, Signer } from "ethers";
+import { Provider } from "ethers/providers";
+
+import { NameMangling } from "./NameMangling";
+
+export class NameManglingFactory {
+ static connect(
+ address: string,
+ signerOrProvider: Signer | Provider
+ ): NameMangling {
+ return new Contract(address, _abi, signerOrProvider) as NameMangling;
+ }
+}
+
+const _abi = [
+ {
+ inputs: [],
+ name: "works",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ }
+];
diff --git a/packages/target-ethers-v5-test/types/Overloads.d.ts b/packages/target-ethers-v5-test/types/Overloads.d.ts
new file mode 100644
index 000000000..73ed4f205
--- /dev/null
+++ b/packages/target-ethers-v5-test/types/Overloads.d.ts
@@ -0,0 +1,57 @@
+/* Generated by ts-generator ver. 0.0.8 */
+/* tslint:disable */
+
+import { Contract, ContractTransaction, EventFilter, Signer } from "ethers";
+import { Listener, Provider } from "ethers/providers";
+import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils";
+import {
+ TransactionOverrides,
+ TypedEventDescription,
+ TypedFunctionDescription
+} from ".";
+
+interface OverloadsInterface extends Interface {
+ functions: {
+ overload1: TypedFunctionDescription<{
+ encode([input1]: [BigNumberish]): string;
+ }>;
+ };
+
+ events: {};
+}
+
+export class Overloads extends Contract {
+ connect(signerOrProvider: Signer | Provider | string): Overloads;
+ attach(addressOrName: string): Overloads;
+ deployed(): Promise;
+
+ on(event: EventFilter | string, listener: Listener): Overloads;
+ once(event: EventFilter | string, listener: Listener): Overloads;
+ addListener(eventName: EventFilter | string, listener: Listener): Overloads;
+ removeAllListeners(eventName: EventFilter | string): Overloads;
+ removeListener(eventName: any, listener: Listener): Overloads;
+
+ interface: OverloadsInterface;
+
+ functions: {
+ "overload1(int256)"(input1: BigNumberish): Promise;
+
+ "overload1(uint256,uint256)"(
+ input1: BigNumberish,
+ input2: BigNumberish
+ ): Promise;
+ };
+
+ "overload1(int256)"(input1: BigNumberish): Promise;
+
+ "overload1(uint256,uint256)"(
+ input1: BigNumberish,
+ input2: BigNumberish
+ ): Promise;
+
+ filters: {};
+
+ estimate: {
+ overload1(input1: BigNumberish): Promise;
+ };
+}
diff --git a/packages/target-ethers-v5-test/types/OverloadsFactory.ts b/packages/target-ethers-v5-test/types/OverloadsFactory.ts
new file mode 100644
index 000000000..5aa7f5a44
--- /dev/null
+++ b/packages/target-ethers-v5-test/types/OverloadsFactory.ts
@@ -0,0 +1,62 @@
+/* Generated by ts-generator ver. 0.0.8 */
+/* tslint:disable */
+
+import { Contract, Signer } from "ethers";
+import { Provider } from "ethers/providers";
+
+import { Overloads } from "./Overloads";
+
+export class OverloadsFactory {
+ static connect(
+ address: string,
+ signerOrProvider: Signer | Provider
+ ): Overloads {
+ return new Contract(address, _abi, signerOrProvider) as Overloads;
+ }
+}
+
+const _abi = [
+ {
+ inputs: [
+ {
+ internalType: "int256",
+ name: "input1",
+ type: "int256"
+ }
+ ],
+ name: "overload1",
+ outputs: [
+ {
+ internalType: "int256",
+ name: "",
+ type: "int256"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "input1",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "input2",
+ type: "uint256"
+ }
+ ],
+ name: "overload1",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ }
+];
diff --git a/packages/target-ethers-v5-test/types/Payable.d.ts b/packages/target-ethers-v5-test/types/Payable.d.ts
new file mode 100644
index 000000000..c36e141ef
--- /dev/null
+++ b/packages/target-ethers-v5-test/types/Payable.d.ts
@@ -0,0 +1,59 @@
+/* Generated by ts-generator ver. 0.0.8 */
+/* tslint:disable */
+
+import { Contract, ContractTransaction, EventFilter, Signer } from "ethers";
+import { Listener, Provider } from "ethers/providers";
+import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils";
+import {
+ TransactionOverrides,
+ TypedEventDescription,
+ TypedFunctionDescription
+} from ".";
+
+interface PayableInterface extends Interface {
+ functions: {
+ non_payable_func: TypedFunctionDescription<{ encode([]: []): string }>;
+
+ payable_func: TypedFunctionDescription<{ encode([]: []): string }>;
+ };
+
+ events: {};
+}
+
+export class Payable extends Contract {
+ connect(signerOrProvider: Signer | Provider | string): Payable;
+ attach(addressOrName: string): Payable;
+ deployed(): Promise;
+
+ on(event: EventFilter | string, listener: Listener): Payable;
+ once(event: EventFilter | string, listener: Listener): Payable;
+ addListener(eventName: EventFilter | string, listener: Listener): Payable;
+ removeAllListeners(eventName: EventFilter | string): Payable;
+ removeListener(eventName: any, listener: Listener): Payable;
+
+ interface: PayableInterface;
+
+ functions: {
+ non_payable_func(
+ overrides?: TransactionOverrides
+ ): Promise;
+
+ payable_func(
+ overrides?: TransactionOverrides
+ ): Promise;
+ };
+
+ non_payable_func(
+ overrides?: TransactionOverrides
+ ): Promise;
+
+ payable_func(overrides?: TransactionOverrides): Promise;
+
+ filters: {};
+
+ estimate: {
+ non_payable_func(): Promise;
+
+ payable_func(): Promise;
+ };
+}
diff --git a/packages/target-ethers-v5-test/types/PayableFactory.ts b/packages/target-ethers-v5-test/types/PayableFactory.ts
new file mode 100644
index 000000000..1fbc7d681
--- /dev/null
+++ b/packages/target-ethers-v5-test/types/PayableFactory.ts
@@ -0,0 +1,33 @@
+/* Generated by ts-generator ver. 0.0.8 */
+/* tslint:disable */
+
+import { Contract, Signer } from "ethers";
+import { Provider } from "ethers/providers";
+
+import { Payable } from "./Payable";
+
+export class PayableFactory {
+ static connect(
+ address: string,
+ signerOrProvider: Signer | Provider
+ ): Payable {
+ return new Contract(address, _abi, signerOrProvider) as Payable;
+ }
+}
+
+const _abi = [
+ {
+ inputs: [],
+ name: "non_payable_func",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "payable_func",
+ outputs: [],
+ stateMutability: "payable",
+ type: "function"
+ }
+];
diff --git a/packages/target-ethers-v5-test/types/index.d.ts b/packages/target-ethers-v5-test/types/index.d.ts
new file mode 100644
index 000000000..93c86106f
--- /dev/null
+++ b/packages/target-ethers-v5-test/types/index.d.ts
@@ -0,0 +1,27 @@
+/* Generated by ts-generator ver. 0.0.8 */
+/* tslint:disable */
+import {
+ BigNumberish,
+ EventDescription,
+ FunctionDescription
+} from "ethers/utils";
+
+export class TransactionOverrides {
+ nonce?: BigNumberish | Promise;
+ gasLimit?: BigNumberish | Promise;
+ gasPrice?: BigNumberish | Promise;
+ value?: BigNumberish | Promise;
+ chainId?: number | Promise;
+}
+
+export interface TypedEventDescription<
+ T extends Pick
+> extends EventDescription {
+ encodeTopics: T["encodeTopics"];
+}
+
+export interface TypedFunctionDescription<
+ T extends Pick
+> extends FunctionDescription {
+ encode: T["encode"];
+}
From 79c3fb562fbb92e1054eb98bd1580891666e0f73 Mon Sep 17 00:00:00 2001
From: zemse
Date: Sun, 28 Jun 2020 17:42:07 +0530
Subject: [PATCH 34/64] Install ethers v5
---
packages/target-ethers-v5-test/package.json | 2 +-
yarn.lock | 376 ++++++++++++++++++++
2 files changed, 377 insertions(+), 1 deletion(-)
diff --git a/packages/target-ethers-v5-test/package.json b/packages/target-ethers-v5-test/package.json
index 45a70e872..62bc28e3e 100644
--- a/packages/target-ethers-v5-test/package.json
+++ b/packages/target-ethers-v5-test/package.json
@@ -43,6 +43,6 @@
"typescript": "3.9.0-beta"
},
"dependencies": {
- "ethers": "^4.0.46"
+ "ethers": "^5.0.2"
}
}
diff --git a/yarn.lock b/yarn.lock
index 23bef0b39..b96b4e19d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -18,6 +18,337 @@
esutils "^2.0.2"
js-tokens "^4.0.0"
+"@ethersproject/abi@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.1.tgz#b6ba2bfb4278fbd6328b608e09741c2475ddad9c"
+ integrity sha512-9fqSa3jEYV4nN8tijW+jz4UnT/Ma9/b8y4+nHlsvuWqr32E2kYsT9SCIVpk/51iM6NOud7xsA6UxCox9zBeHKg==
+ dependencies:
+ "@ethersproject/address" "^5.0.0"
+ "@ethersproject/bignumber" "^5.0.0"
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/constants" "^5.0.0"
+ "@ethersproject/hash" "^5.0.0"
+ "@ethersproject/keccak256" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+ "@ethersproject/properties" "^5.0.0"
+ "@ethersproject/strings" "^5.0.0"
+
+"@ethersproject/abstract-provider@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.0.1.tgz#7d4828a3b4690f95f4462abedcba7aeb118dadd5"
+ integrity sha512-/KOw65ayviYPtKLqFE1qozeIJJlfI1wE/tNA+iKUPUai6bU6vg2tbfLFGarRTCQe3HoWV1t7xSsD/z9T9xg74g==
+ dependencies:
+ "@ethersproject/bignumber" "^5.0.0"
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+ "@ethersproject/networks" "^5.0.0"
+ "@ethersproject/properties" "^5.0.0"
+ "@ethersproject/transactions" "^5.0.0"
+ "@ethersproject/web" "^5.0.0"
+
+"@ethersproject/abstract-signer@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.0.1.tgz#92149e771366467e86cc44dd0c49d28f93eaa852"
+ integrity sha512-Rp8DP+cLcSNFkd1YhwPSBcgEWLRipNakitwIwHngAmhbo4zdiWgALD/OLqdQ7SKF75CufF1W4BCuXcQgiWaRow==
+ dependencies:
+ "@ethersproject/abstract-provider" "^5.0.0"
+ "@ethersproject/bignumber" "^5.0.0"
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+ "@ethersproject/properties" "^5.0.0"
+
+"@ethersproject/address@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.1.tgz#882424fbbec1111abc1aa3482e647a72683c5377"
+ integrity sha512-kfQtXpBP2pI2TfoRRAYv8grHGiYw8U0c1KbMsC58/W33TIBy7gFSf/oAzOd94lNzdIUenKU0OuSzrHQfVcDDDA==
+ dependencies:
+ "@ethersproject/bignumber" "^5.0.0"
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/keccak256" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+ "@ethersproject/rlp" "^5.0.0"
+ bn.js "^4.4.0"
+
+"@ethersproject/base64@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.0.1.tgz#9f067855f59db94edebb6cd80fbe79033406b317"
+ integrity sha512-WZDa+TYl6BQfUm9EQIDDfJFL0GiuYXNZPIWoiZx3uds7P1XMsvcW3k71AyjYUxIkU5AKW7awwPbzCbBeP1uXsA==
+ dependencies:
+ "@ethersproject/bytes" "^5.0.0"
+
+"@ethersproject/basex@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.0.1.tgz#226ae11bb5c6453398cece08b9548a5f896e24e5"
+ integrity sha512-ssL2+p/A5bZgkZkiWy0iQDVz2mVJxZfzpf7dpw8t0sKF9VpoM3ZiMthRapH/QBhd4Rr6TNbr619pFLAGmMi9Ug==
+ dependencies:
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/properties" "^5.0.0"
+
+"@ethersproject/bignumber@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.0.1.tgz#85edb1026310633ef566cc379e3e0026697f6e6e"
+ integrity sha512-srGDO7ksT0avdDw5pBtj6F81psv5xiJMInwSSatfIKplitubFb6yVwoHGObGRd0Pp3TvrkIDfJkuskoSMj4OHQ==
+ dependencies:
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+ "@ethersproject/properties" "^5.0.0"
+ bn.js "^4.4.0"
+
+"@ethersproject/bytes@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.0.1.tgz#da8cd9b3e3b2800be9b46fda7036fc441b334680"
+ integrity sha512-Y198536UW9Jb9RBXuqmCsCa9mYJUsxJn+5aGr2XjNMpLBc6vEn/44GHnbQXYgRCzh4rnWtJ9bTgSwDjme9Hgnw==
+ dependencies:
+ "@ethersproject/logger" "^5.0.0"
+
+"@ethersproject/constants@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.0.1.tgz#51426b1d673661e905418ddeefca1f634866860d"
+ integrity sha512-Xec07hFCPN4wfC3WDiRay7KipkApl2msiKTrBHCuAwNMOM8M92+mlQp8tgfEL51DPwCZkmdk1f02kArc6caVSw==
+ dependencies:
+ "@ethersproject/bignumber" "^5.0.0"
+
+"@ethersproject/contracts@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.0.1.tgz#b11ad52f98f807e13a4bf0a89e45a2c56db19df3"
+ integrity sha512-1uPajmkvw3Oy/dxs5TKUsGaXzQ3s5qiXKSVpw9ZrhGG6fMRO3gNyUA+uSWk9IXK0ulj5P95F7vW8HmYOkzep/Q==
+ dependencies:
+ "@ethersproject/abi" "^5.0.0"
+ "@ethersproject/abstract-provider" "^5.0.0"
+ "@ethersproject/abstract-signer" "^5.0.0"
+ "@ethersproject/address" "^5.0.0"
+ "@ethersproject/bignumber" "^5.0.0"
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/constants" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+ "@ethersproject/properties" "^5.0.0"
+
+"@ethersproject/hash@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.0.1.tgz#8190240d250b9442dd25f1e8ec2d66e7d0d38237"
+ integrity sha512-1ByUXYvkszrSSks07xctBtZfpFnIVmftxWlAAnguxh6Q65vKECd/EPi5uI5xVOvnrYMH9Vb8MK1SofPX/6fArQ==
+ dependencies:
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/keccak256" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+ "@ethersproject/strings" "^5.0.0"
+
+"@ethersproject/hdnode@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.0.1.tgz#28c621c6fdb1a744c870212405e87c64e714e05f"
+ integrity sha512-L2OZP4SKKxNtHUdwfK8cND09kHRH62ncxXW33WAJU9shKo8Sbz31HVqSdov84bMAGm8QfEKZbfbAJV/7DM6DjQ==
+ dependencies:
+ "@ethersproject/abstract-signer" "^5.0.0"
+ "@ethersproject/basex" "^5.0.0"
+ "@ethersproject/bignumber" "^5.0.0"
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+ "@ethersproject/pbkdf2" "^5.0.0"
+ "@ethersproject/properties" "^5.0.0"
+ "@ethersproject/sha2" "^5.0.0"
+ "@ethersproject/signing-key" "^5.0.0"
+ "@ethersproject/strings" "^5.0.0"
+ "@ethersproject/transactions" "^5.0.0"
+ "@ethersproject/wordlists" "^5.0.0"
+
+"@ethersproject/json-wallets@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.0.1.tgz#a04a728cbf1974fc0a618794ef348335d4522848"
+ integrity sha512-QjqQCh1a0a6wRVHdnqVccCLWX0vAgxnvGZeGqpOk2NbyNE8HTzV7GpOE+4LU+iCc8oonfy1gYd4hpsf+iEUWGg==
+ dependencies:
+ "@ethersproject/abstract-signer" "^5.0.0"
+ "@ethersproject/address" "^5.0.0"
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/hdnode" "^5.0.0"
+ "@ethersproject/keccak256" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+ "@ethersproject/pbkdf2" "^5.0.0"
+ "@ethersproject/properties" "^5.0.0"
+ "@ethersproject/random" "^5.0.0"
+ "@ethersproject/strings" "^5.0.0"
+ "@ethersproject/transactions" "^5.0.0"
+ aes-js "3.0.0"
+ scrypt-js "3.0.1"
+ uuid "2.0.1"
+
+"@ethersproject/keccak256@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.0.1.tgz#be91c11a8bdf4e94c8b900502d2a46b223fbdeb3"
+ integrity sha512-AtFm/4qHRQUvZcG3WYmaT7zV79dz72+N01w0XphcIBaD/7UZXyW85Uf08sirVlckHmh9fvc4UDWyHiroKsBT6Q==
+ dependencies:
+ "@ethersproject/bytes" "^5.0.0"
+ js-sha3 "0.5.7"
+
+"@ethersproject/logger@^5.0.0":
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.0.2.tgz#f24aa14a738a428d711c1828b44d50114a461b8b"
+ integrity sha512-NQe3O1/Nwkcp6bto6hsTvrcCeR/cOGK+RhOMn0Zi2FND6gdWsf1g+5ie8gQ1REqDX4MTGP/Y131dZas985ls/g==
+
+"@ethersproject/networks@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.0.1.tgz#c06ac151d0dfec421c1cb98a9153c109b3117111"
+ integrity sha512-Pe34JCTC6Apm/DkK3z97xotvEyu9YHKIFlDIu5hGV6yFDb4/sUfY2SHKYSGdUrV0418ZZVrwYDveJtBFMmYu2Q==
+ dependencies:
+ "@ethersproject/logger" "^5.0.0"
+
+"@ethersproject/pbkdf2@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.0.1.tgz#86d4340f88ebb97254c7e0d26830c24fb45b1642"
+ integrity sha512-4wc8Aov0iJmiomu6Dv1JNGOlhm3L7omITjLmChz/vgeDnW4Unv4J/nGybCeWKgY4hnjyQMVXkdkQ15BCRbkaYg==
+ dependencies:
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/sha2" "^5.0.0"
+
+"@ethersproject/properties@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.1.tgz#e1fecbfcb24f23bf3b64a2ac74f2751113d116e0"
+ integrity sha512-b3VZ/NpYIf64/hFXeWNxVCbY1xoMPIYM3n6Qnu6Ayr3bLt1olFPQfAaaRB0aOsLz7tMtmkT3DrA1KG/IrOgBRw==
+ dependencies:
+ "@ethersproject/logger" "^5.0.0"
+
+"@ethersproject/providers@^5.0.0":
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.0.2.tgz#d738235db8235cf3471f4e7c4fac99b8830e4bf1"
+ integrity sha512-28ABJmHB9ii/73F3P9CXLBvlRkitiOGHCrUZqjQ6FELuAtKEROqA/yDklT9o/r/BpGcGTeeWpWfvdfgDHjshiw==
+ dependencies:
+ "@ethersproject/abstract-provider" "^5.0.0"
+ "@ethersproject/abstract-signer" "^5.0.0"
+ "@ethersproject/address" "^5.0.0"
+ "@ethersproject/bignumber" "^5.0.0"
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/constants" "^5.0.0"
+ "@ethersproject/hash" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+ "@ethersproject/networks" "^5.0.0"
+ "@ethersproject/properties" "^5.0.0"
+ "@ethersproject/random" "^5.0.0"
+ "@ethersproject/rlp" "^5.0.0"
+ "@ethersproject/strings" "^5.0.0"
+ "@ethersproject/transactions" "^5.0.0"
+ "@ethersproject/web" "^5.0.0"
+ ws "7.2.3"
+
+"@ethersproject/random@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.0.1.tgz#cc5433c54e26faddf7c036e07a4f125d64503edb"
+ integrity sha512-nYzNhcp5Th4dCocV3yceZmh80bRmSQxqNRgND7Y/YgEgYJSSnknScpfRHACG//kgbsY8zui8ajXJeEnzS7yFbQ==
+ dependencies:
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+
+"@ethersproject/rlp@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.0.1.tgz#3407b0cb78f82a1a219aecff57578c0558ae26c8"
+ integrity sha512-3F8XE1zS4w8w4xiK1hMtFuVs6UnhQlmrEHLT85GanqK8vG5wGi81IQmkukL9tQIu2a5jykoO46ibja+6N1fpFg==
+ dependencies:
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+
+"@ethersproject/sha2@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.0.1.tgz#46b1b06cfd7d557ae4deab4cc85773f7512c4022"
+ integrity sha512-5wNdULNDMJKwyzqrTH66e2TZPZTSqqluS7RNtuuuQSTP+yIALoID7ewLjDoj31g4kZyq/pqQbackKJLOXejTKw==
+ dependencies:
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+ hash.js "1.1.3"
+
+"@ethersproject/signing-key@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.0.1.tgz#90957e42c69e857dc741c8fbeeff0f36bcee9cf7"
+ integrity sha512-Z3yMPFFf4KkWltndDNi/tpese7qZh6ZWKbGu3DHd8xOX0PJqbScdAs6gCfFeMatO06qyX307Y52soc/Ayf8ZSg==
+ dependencies:
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+ "@ethersproject/properties" "^5.0.0"
+ elliptic "6.5.2"
+
+"@ethersproject/solidity@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.0.1.tgz#df561603ba1c420e2ea309fca746698c55710a6d"
+ integrity sha512-3L+xI1LaJmd2zBJxnK9Y4cd1vb2aJLFvL6fxvjWpzcMiFiZ4dbPwj3kharv5f5mAlbGwAs6NiPJaFWvbOpm96Q==
+ dependencies:
+ "@ethersproject/bignumber" "^5.0.0"
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/keccak256" "^5.0.0"
+ "@ethersproject/sha2" "^5.0.0"
+ "@ethersproject/strings" "^5.0.0"
+
+"@ethersproject/strings@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.1.tgz#a93aafeede100c4aad7f48e25aad1ddc42eeccc7"
+ integrity sha512-N8LxdHGBT7GZdogkEOV5xKXYTz5PNHuNzcxLNPYfH3kpvWSyXshZBgAz8YE1a8sMZagGj+Ic6d3mHijdCTSkGA==
+ dependencies:
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/constants" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+
+"@ethersproject/transactions@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.0.1.tgz#61480dc600f4a49eb99627778e3b46b381f8bdd9"
+ integrity sha512-IGc6/5hri3PrqR/ZCj89osDiq3Lt0CSrycn6vlRl8SjpBKYDdcT+Ru5xkeC7YcsnqcdBmTL+jyR3SLudU+x2Kw==
+ dependencies:
+ "@ethersproject/address" "^5.0.0"
+ "@ethersproject/bignumber" "^5.0.0"
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/constants" "^5.0.0"
+ "@ethersproject/keccak256" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+ "@ethersproject/properties" "^5.0.0"
+ "@ethersproject/rlp" "^5.0.0"
+ "@ethersproject/signing-key" "^5.0.0"
+
+"@ethersproject/units@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.0.1.tgz#f9fd97d0bfa0c23d55084b428053a29b42082a1f"
+ integrity sha512-7J7Jmm4hMZ+yFiqEd7D5oeVK/V74GDwQlT0Om1yxXLYX6UPcV5ChHkUz/xpHPT9JXQlQ+2D69HBf1dzvdflrmQ==
+ dependencies:
+ "@ethersproject/bignumber" "^5.0.0"
+ "@ethersproject/constants" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+
+"@ethersproject/wallet@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.0.1.tgz#595077365c674654e90d3884594a86d70ba07e7e"
+ integrity sha512-1/QPpFngJtUGtdVOLSoIN3vf+zEWyEVxQ0lhRCwGkiBqL2SoVoDHB7/nCfcv7wwlZkdnegFfo/8DxeyYjTZN7w==
+ dependencies:
+ "@ethersproject/abstract-provider" "^5.0.0"
+ "@ethersproject/abstract-signer" "^5.0.0"
+ "@ethersproject/address" "^5.0.0"
+ "@ethersproject/bignumber" "^5.0.0"
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/hash" "^5.0.0"
+ "@ethersproject/hdnode" "^5.0.0"
+ "@ethersproject/json-wallets" "^5.0.0"
+ "@ethersproject/keccak256" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+ "@ethersproject/properties" "^5.0.0"
+ "@ethersproject/random" "^5.0.0"
+ "@ethersproject/signing-key" "^5.0.0"
+ "@ethersproject/transactions" "^5.0.0"
+ "@ethersproject/wordlists" "^5.0.0"
+
+"@ethersproject/web@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.0.1.tgz#b741096b5ad9465a1148b7dba8988c1da16f592a"
+ integrity sha512-lWPg8BR6KoyiIKYRIM6j+XO9bT9vGM1JnxFj2HmhIvOrOjba7ZRd8ANBOsDVGfw5igLUdfqAUOf9WpSsH//TzA==
+ dependencies:
+ "@ethersproject/base64" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+ "@ethersproject/properties" "^5.0.0"
+ "@ethersproject/strings" "^5.0.0"
+
+"@ethersproject/wordlists@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.0.1.tgz#4b1ef0894665fc8e7898235d3aa155f1724efa75"
+ integrity sha512-R7boLmpewucz5v4jD7cWwI0BGHR/DstiZtjdhUOft6XdMqM1OGb1UTL0GBQeS4vDXzCLuJEHddjJ69beGVN/4Q==
+ dependencies:
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/hash" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+ "@ethersproject/properties" "^5.0.0"
+ "@ethersproject/strings" "^5.0.0"
+
"@jest/types@^24.9.0":
version "24.9.0"
resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59"
@@ -1641,6 +1972,41 @@ ethers@^4.0.46:
uuid "2.0.1"
xmlhttprequest "1.8.0"
+ethers@^5.0.2:
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.0.2.tgz#b7ccca12592c8f5f45e172c3c32fd13d77225048"
+ integrity sha512-hAWTPQXvjFlrtnPLCnOOJJuqiqmJv820egPHpOwcWTIQxXRrcfZyse2692eaqsXMeYLNM2CRfYgEomBiBGvgjw==
+ dependencies:
+ "@ethersproject/abi" "^5.0.0"
+ "@ethersproject/abstract-provider" "^5.0.0"
+ "@ethersproject/abstract-signer" "^5.0.0"
+ "@ethersproject/address" "^5.0.0"
+ "@ethersproject/base64" "^5.0.0"
+ "@ethersproject/bignumber" "^5.0.0"
+ "@ethersproject/bytes" "^5.0.0"
+ "@ethersproject/constants" "^5.0.0"
+ "@ethersproject/contracts" "^5.0.0"
+ "@ethersproject/hash" "^5.0.0"
+ "@ethersproject/hdnode" "^5.0.0"
+ "@ethersproject/json-wallets" "^5.0.0"
+ "@ethersproject/keccak256" "^5.0.0"
+ "@ethersproject/logger" "^5.0.0"
+ "@ethersproject/networks" "^5.0.0"
+ "@ethersproject/pbkdf2" "^5.0.0"
+ "@ethersproject/properties" "^5.0.0"
+ "@ethersproject/providers" "^5.0.0"
+ "@ethersproject/random" "^5.0.0"
+ "@ethersproject/rlp" "^5.0.0"
+ "@ethersproject/sha2" "^5.0.0"
+ "@ethersproject/signing-key" "^5.0.0"
+ "@ethersproject/solidity" "^5.0.0"
+ "@ethersproject/strings" "^5.0.0"
+ "@ethersproject/transactions" "^5.0.0"
+ "@ethersproject/units" "^5.0.0"
+ "@ethersproject/wallet" "^5.0.0"
+ "@ethersproject/web" "^5.0.0"
+ "@ethersproject/wordlists" "^5.0.0"
+
ethjs-unit@0.1.6:
version "0.1.6"
resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699"
@@ -3746,6 +4112,11 @@ scrypt-js@2.0.4:
resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16"
integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==
+scrypt-js@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312"
+ integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==
+
scryptsy@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.1.0.tgz#8d1e8d0c025b58fdd25b6fa9a0dc905ee8faa790"
@@ -4849,6 +5220,11 @@ write@1.0.3:
dependencies:
mkdirp "^0.5.1"
+ws@7.2.3:
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46"
+ integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==
+
ws@^3.0.0:
version "3.3.3"
resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
From bc554ad801db714e6b35e03de3b211ae435585cd Mon Sep 17 00:00:00 2001
From: zemse
Date: Sun, 28 Jun 2020 17:44:57 +0530
Subject: [PATCH 35/64] Update types
---
packages/target-ethers-v5-test/package.json | 2 +-
.../types/DataTypesInput.d.ts | 440 +++++++++++++-----
...utFactory.ts => DataTypesInputContract.ts} | 2 +-
.../types/DataTypesPure.d.ts | 345 ++++++++++----
...ureFactory.ts => DataTypesPureContract.ts} | 2 +-
.../types/DataTypesView.d.ts | 345 ++++++++++----
...iewFactory.ts => DataTypesViewContract.ts} | 2 +-
.../target-ethers-v5-test/types/Events.d.ts | 157 ++++---
.../{EventsFactory.ts => EventsContract.ts} | 2 +-
.../types/NameMangling.d.ts | 69 ++-
...lingFactory.ts => NameManglingContract.ts} | 2 +-
.../types/Overloads.d.ts | 92 +++-
...erloadsFactory.ts => OverloadsContract.ts} | 2 +-
.../target-ethers-v5-test/types/Payable.d.ts | 89 ++--
.../{PayableFactory.ts => PayableContract.ts} | 2 +-
.../target-ethers-v5-test/types/index.d.ts | 27 --
packages/target-ethers-v5-test/types/index.ts | 2 +
17 files changed, 1098 insertions(+), 484 deletions(-)
rename packages/target-ethers-v5-test/types/{DataTypesInputFactory.ts => DataTypesInputContract.ts} (99%)
rename packages/target-ethers-v5-test/types/{DataTypesPureFactory.ts => DataTypesPureContract.ts} (98%)
rename packages/target-ethers-v5-test/types/{DataTypesViewFactory.ts => DataTypesViewContract.ts} (98%)
rename packages/target-ethers-v5-test/types/{EventsFactory.ts => EventsContract.ts} (97%)
rename packages/target-ethers-v5-test/types/{NameManglingFactory.ts => NameManglingContract.ts} (91%)
rename packages/target-ethers-v5-test/types/{OverloadsFactory.ts => OverloadsContract.ts} (95%)
rename packages/target-ethers-v5-test/types/{PayableFactory.ts => PayableContract.ts} (92%)
delete mode 100644 packages/target-ethers-v5-test/types/index.d.ts
create mode 100644 packages/target-ethers-v5-test/types/index.ts
diff --git a/packages/target-ethers-v5-test/package.json b/packages/target-ethers-v5-test/package.json
index 62bc28e3e..07b88e227 100644
--- a/packages/target-ethers-v5-test/package.json
+++ b/packages/target-ethers-v5-test/package.json
@@ -11,7 +11,7 @@
"lint:fix": "yarn lint --fix",
"typecheck": "tsc --noEmit --incremental false --composite false && tsc --noEmit --incremental false --composite false -p tsconfig.types.json",
"clean": "rm -rf dist contracts/* && rm -f tsconfig.build.tsbuildinfo && rm -rf build",
- "generate-types": "../typechain/dist/cli/cli.js --target=`pwd`/../target-ethers-v4/dist/index.js --outDir ./types/ '../../contracts/compiled/*.abi'",
+ "generate-types": "../typechain/dist/cli/cli.js --target=`pwd`/../target-ethers-v5/dist/index.js --outDir ./types/ '../../contracts/compiled/*.abi'",
"test": "yarn generate-types && mocha --config ../../.mocharc.js",
"test:fix": "yarn lint:fix && yarn format:fix && yarn test && yarn typecheck"
},
diff --git a/packages/target-ethers-v5-test/types/DataTypesInput.d.ts b/packages/target-ethers-v5-test/types/DataTypesInput.d.ts
index 6ab731907..e95cd8ccb 100644
--- a/packages/target-ethers-v5-test/types/DataTypesInput.d.ts
+++ b/packages/target-ethers-v5-test/types/DataTypesInput.d.ts
@@ -1,155 +1,278 @@
/* Generated by ts-generator ver. 0.0.8 */
/* tslint:disable */
-import { Contract, ContractTransaction, EventFilter, Signer } from "ethers";
-import { Listener, Provider } from "ethers/providers";
-import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils";
import {
- TransactionOverrides,
- TypedEventDescription,
- TypedFunctionDescription
-} from ".";
-
-interface DataTypesInputInterface extends Interface {
+ ethers,
+ EventFilter,
+ Signer,
+ BigNumber,
+ BigNumberish,
+ PopulatedTransaction
+} from "ethers";
+import {
+ Contract,
+ ContractTransaction,
+ CallOverrides
+} from "@ethersproject/contracts";
+import { BytesLike } from "@ethersproject/bytes";
+import { Listener, Provider } from "@ethersproject/providers";
+import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
+
+interface DataTypesInputInterface extends ethers.utils.Interface {
functions: {
- input_address: TypedFunctionDescription<{
- encode([input1]: [string]): string;
- }>;
+ "input_address(address)": FunctionFragment;
+ "input_bool(bool)": FunctionFragment;
+ "input_bytes(bytes)": FunctionFragment;
+ "input_bytes1(bytes1)": FunctionFragment;
+ "input_enum(uint8)": FunctionFragment;
+ "input_int256(int256)": FunctionFragment;
+ "input_int8(int8)": FunctionFragment;
+ "input_stat_array(uint8[3])": FunctionFragment;
+ "input_string(string)": FunctionFragment;
+ "input_struct(tuple)": FunctionFragment;
+ "input_tuple(uint256,uint256)": FunctionFragment;
+ "input_uint256(uint256)": FunctionFragment;
+ "input_uint8(uint8)": FunctionFragment;
+ };
- input_bool: TypedFunctionDescription<{
- encode([input1]: [boolean]): string;
- }>;
+ encodeFunctionData(
+ functionFragment: "input_address",
+ values: [string]
+ ): string;
+ encodeFunctionData(functionFragment: "input_bool", values: [boolean]): string;
+ encodeFunctionData(
+ functionFragment: "input_bytes",
+ values: [BytesLike]
+ ): string;
+ encodeFunctionData(
+ functionFragment: "input_bytes1",
+ values: [BytesLike]
+ ): string;
+ encodeFunctionData(
+ functionFragment: "input_enum",
+ values: [BigNumberish]
+ ): string;
+ encodeFunctionData(
+ functionFragment: "input_int256",
+ values: [BigNumberish]
+ ): string;
+ encodeFunctionData(
+ functionFragment: "input_int8",
+ values: [BigNumberish]
+ ): string;
+ encodeFunctionData(
+ functionFragment: "input_stat_array",
+ values: [BigNumberish[]]
+ ): string;
+ encodeFunctionData(
+ functionFragment: "input_string",
+ values: [string]
+ ): string;
+ encodeFunctionData(
+ functionFragment: "input_struct",
+ values: [{ uint256_0: BigNumberish; uint256_1: BigNumberish }]
+ ): string;
+ encodeFunctionData(
+ functionFragment: "input_tuple",
+ values: [BigNumberish, BigNumberish]
+ ): string;
+ encodeFunctionData(
+ functionFragment: "input_uint256",
+ values: [BigNumberish]
+ ): string;
+ encodeFunctionData(
+ functionFragment: "input_uint8",
+ values: [BigNumberish]
+ ): string;
+
+ decodeFunctionResult(
+ functionFragment: "input_address",
+ data: BytesLike
+ ): Result;
+ decodeFunctionResult(functionFragment: "input_bool", data: BytesLike): Result;
+ decodeFunctionResult(
+ functionFragment: "input_bytes",
+ data: BytesLike
+ ): Result;
+ decodeFunctionResult(
+ functionFragment: "input_bytes1",
+ data: BytesLike
+ ): Result;
+ decodeFunctionResult(functionFragment: "input_enum", data: BytesLike): Result;
+ decodeFunctionResult(
+ functionFragment: "input_int256",
+ data: BytesLike
+ ): Result;
+ decodeFunctionResult(functionFragment: "input_int8", data: BytesLike): Result;
+ decodeFunctionResult(
+ functionFragment: "input_stat_array",
+ data: BytesLike
+ ): Result;
+ decodeFunctionResult(
+ functionFragment: "input_string",
+ data: BytesLike
+ ): Result;
+ decodeFunctionResult(
+ functionFragment: "input_struct",
+ data: BytesLike
+ ): Result;
+ decodeFunctionResult(
+ functionFragment: "input_tuple",
+ data: BytesLike
+ ): Result;
+ decodeFunctionResult(
+ functionFragment: "input_uint256",
+ data: BytesLike
+ ): Result;
+ decodeFunctionResult(
+ functionFragment: "input_uint8",
+ data: BytesLike
+ ): Result;
- input_bytes: TypedFunctionDescription<{
- encode([input1]: [Arrayish]): string;
- }>;
+ events: {};
+}
- input_bytes1: TypedFunctionDescription<{
- encode([input1]: [Arrayish]): string;
- }>;
+export class DataTypesInput extends Contract {
+ connect(signerOrProvider: Signer | Provider | string): this;
+ attach(addressOrName: string): this;
+ deployed(): Promise;
- input_enum: TypedFunctionDescription<{
- encode([input1]: [BigNumberish]): string;
- }>;
+ on(event: EventFilter | string, listener: Listener): this;
+ once(event: EventFilter | string, listener: Listener): this;
+ addListener(eventName: EventFilter | string, listener: Listener): this;
+ removeAllListeners(eventName: EventFilter | string): this;
+ removeListener(eventName: any, listener: Listener): this;
- input_int256: TypedFunctionDescription<{
- encode([input1]: [BigNumberish]): string;
- }>;
+ interface: DataTypesInputInterface;
- input_int8: TypedFunctionDescription<{
- encode([input1]: [BigNumberish]): string;
+ functions: {
+ input_address(
+ input1: string,
+ overrides?: CallOverrides
+ ): Promise<{
+ 0: string;
}>;
- input_stat_array: TypedFunctionDescription<{
- encode([input1]: [BigNumberish[]]): string;
+ input_bool(
+ input1: boolean,
+ overrides?: CallOverrides
+ ): Promise<{
+ 0: boolean;
}>;
- input_string: TypedFunctionDescription<{
- encode([input1]: [string]): string;
+ input_bytes(
+ input1: BytesLike,
+ overrides?: CallOverrides
+ ): Promise<{
+ 0: string;
}>;
- input_struct: TypedFunctionDescription<{
- encode([input1]: [
- { uint256_0: BigNumberish; uint256_1: BigNumberish }
- ]): string;
+ input_bytes1(
+ input1: BytesLike,
+ overrides?: CallOverrides
+ ): Promise<{
+ 0: string;
}>;
- input_tuple: TypedFunctionDescription<{
- encode([input1, input2]: [BigNumberish, BigNumberish]): string;
+ input_enum(
+ input1: BigNumberish,
+ overrides?: CallOverrides
+ ): Promise<{
+ 0: number;
}>;
- input_uint256: TypedFunctionDescription<{
- encode([input1]: [BigNumberish]): string;
+ input_int256(
+ input1: BigNumberish,
+ overrides?: CallOverrides
+ ): Promise<{
+ 0: BigNumber;
}>;
- input_uint8: TypedFunctionDescription<{
- encode([input1]: [BigNumberish]): string;
+ input_int8(
+ input1: BigNumberish,
+ overrides?: CallOverrides
+ ): Promise<{
+ 0: number;
}>;
- };
-
- events: {};
-}
-export class DataTypesInput extends Contract {
- connect(signerOrProvider: Signer | Provider | string): DataTypesInput;
- attach(addressOrName: string): DataTypesInput;
- deployed(): Promise;
-
- on(event: EventFilter | string, listener: Listener): DataTypesInput;
- once(event: EventFilter | string, listener: Listener): DataTypesInput;
- addListener(
- eventName: EventFilter | string,
- listener: Listener
- ): DataTypesInput;
- removeAllListeners(eventName: EventFilter | string): DataTypesInput;
- removeListener(eventName: any, listener: Listener): DataTypesInput;
-
- interface: DataTypesInputInterface;
-
- functions: {
- input_address(input1: string): Promise;
-
- input_bool(input1: boolean): Promise;
-
- input_bytes(input1: Arrayish): Promise;
-
- input_bytes1(input1: Arrayish): Promise;
-
- input_enum(input1: BigNumberish): Promise;
-
- input_int256(input1: BigNumberish): Promise;
-
- input_int8(input1: BigNumberish): Promise;
-
- input_stat_array(input1: BigNumberish[]): Promise;
+ input_stat_array(
+ input1: BigNumberish[],
+ overrides?: CallOverrides
+ ): Promise<{
+ 0: number[];
+ }>;
- input_string(input1: string): Promise;
+ input_string(
+ input1: string,
+ overrides?: CallOverrides
+ ): Promise<{
+ 0: string;
+ }>;
- input_struct(input1: {
- uint256_0: BigNumberish;
- uint256_1: BigNumberish;
- }): Promise<{
- uint256_0: BigNumber;
- uint256_1: BigNumber;
- 0: BigNumber;
- 1: BigNumber;
+ input_struct(
+ input1: { uint256_0: BigNumberish; uint256_1: BigNumberish },
+ overrides?: CallOverrides
+ ): Promise<{
+ 0: {
+ uint256_0: BigNumber;
+ uint256_1: BigNumber;
+ 0: BigNumber;
+ 1: BigNumber;
+ };
}>;
input_tuple(
input1: BigNumberish,
- input2: BigNumberish
+ input2: BigNumberish,
+ overrides?: CallOverrides
): Promise<{
0: BigNumber;
1: BigNumber;
}>;
- input_uint256(input1: BigNumberish): Promise;
+ input_uint256(
+ input1: BigNumberish,
+ overrides?: CallOverrides
+ ): Promise<{
+ 0: BigNumber;
+ }>;
- input_uint8(input1: BigNumberish): Promise;
+ input_uint8(
+ input1: BigNumberish,
+ overrides?: CallOverrides
+ ): Promise<{
+ 0: number;
+ }>;
};
- input_address(input1: string): Promise;
+ input_address(input1: string, overrides?: CallOverrides): Promise;
- input_bool(input1: boolean): Promise;
+ input_bool(input1: boolean, overrides?: CallOverrides): Promise;
- input_bytes(input1: Arrayish): Promise;
+ input_bytes(input1: BytesLike, overrides?: CallOverrides): Promise;
- input_bytes1(input1: Arrayish): Promise;
+ input_bytes1(input1: BytesLike, overrides?: CallOverrides): Promise;
- input_enum(input1: BigNumberish): Promise;
+ input_enum(input1: BigNumberish, overrides?: CallOverrides): Promise;
- input_int256(input1: BigNumberish): Promise;
+ input_int256(
+ input1: BigNumberish,
+ overrides?: CallOverrides
+ ): Promise;
- input_int8(input1: BigNumberish): Promise;
+ input_int8(input1: BigNumberish, overrides?: CallOverrides): Promise