Socket
Socket
Sign inDemoInstall

@typechain/ethers-v5

Package Overview
Dependencies
Maintainers
2
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@typechain/ethers-v5 - npm Package Compare versions

Comparing version 7.1.0 to 7.1.1

dist/codegen/events.d.ts

6

CHANGELOG.md
# @typechain/ethers-v5
## 7.1.1
### Patch Changes
- 7f57ff8: Support typings for `getContractAt` when using Hardhat
## 7.1.0

@@ -4,0 +10,0 @@

7

dist/codegen/functions.d.ts

@@ -1,2 +0,2 @@

import { CodegenConfig, FunctionDeclaration } from 'typechain';
import { AbiParameter, CodegenConfig, EventArgDeclaration, FunctionDeclaration } from 'typechain';
interface GenerateFunctionOptions {

@@ -10,2 +10,7 @@ returnResultObject?: boolean;

export declare function codegenForOverloadedFunctions(options: GenerateFunctionOptions, fns: FunctionDeclaration[]): string;
export declare function generateInterfaceFunctionDescription(fn: FunctionDeclaration): string;
export declare function generateFunctionSignature(fn: FunctionDeclaration): string;
export declare function generateEncodeFunctionDataOverload(fn: FunctionDeclaration): string;
export declare function generateDecodeFunctionResultOverload(fn: FunctionDeclaration): string;
export declare function generateParamNames(params: Array<AbiParameter | EventArgDeclaration>): string;
export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.codegenForOverloadedFunctions = exports.codegenFunctions = void 0;
exports.generateParamNames = exports.generateDecodeFunctionResultOverload = exports.generateEncodeFunctionDataOverload = exports.generateFunctionSignature = exports.generateInterfaceFunctionDescription = exports.codegenForOverloadedFunctions = exports.codegenFunctions = void 0;
const typechain_1 = require("typechain");

@@ -57,2 +57,29 @@ const types_1 = require("./types");

}
function generateInterfaceFunctionDescription(fn) {
return `'${generateFunctionSignature(fn)}': FunctionFragment;`;
}
exports.generateInterfaceFunctionDescription = generateInterfaceFunctionDescription;
function generateFunctionSignature(fn) {
return `${fn.name}(${fn.inputs.map((input) => input.type.originalType).join(',')})`;
}
exports.generateFunctionSignature = generateFunctionSignature;
function generateEncodeFunctionDataOverload(fn) {
const methodInputs = [`functionFragment: '${fn.name}'`];
if (fn.inputs.length) {
methodInputs.push(`values: [${fn.inputs.map((input) => types_1.generateInputType(input.type)).join(', ')}]`);
}
else {
methodInputs.push('values?: undefined');
}
return `encodeFunctionData(${methodInputs.join(', ')}): string;`;
}
exports.generateEncodeFunctionDataOverload = generateEncodeFunctionDataOverload;
function generateDecodeFunctionResultOverload(fn) {
return `decodeFunctionResult(functionFragment: '${fn.name}', data: BytesLike): Result;`;
}
exports.generateDecodeFunctionResultOverload = generateDecodeFunctionResultOverload;
function generateParamNames(params) {
return params.map((param, index) => param.name || `arg${index}`).join(', ');
}
exports.generateParamNames = generateParamNames;
//# sourceMappingURL=functions.js.map

@@ -19,2 +19,6 @@ "use strict";

${contracts
.map((n) => `getContractAt(name: '${n}', address: string, signer?: ethers.Signer): Promise<Contracts.${n + common_1.FACTORY_POSTFIX}>`)
.join('\n')}
// default types

@@ -30,2 +34,7 @@ getContractFactory(

): Promise<ethers.ContractFactory>;
getContractAt: (
nameOrAbi: string | any[],
address: string,
signer?: ethers.Signer
) => Promise<ethers.Contract>;
}

@@ -32,0 +41,0 @@ }

101

dist/codegen/index.js

@@ -6,2 +6,3 @@ "use strict";

const common_1 = require("../common");
const events_1 = require("./events");
const functions_1 = require("./functions");

@@ -23,3 +24,3 @@ const reserved_keywords_1 = require("./reserved-keywords");

import { FunctionFragment, EventFragment, Result } from '@ethersproject/abi';
import { TypedEventFilter, TypedEvent, TypedListener } from './commons';
import type { TypedEventFilter, TypedEvent, TypedListener } from './common';

@@ -30,3 +31,3 @@ interface ${contract.name}Interface extends ethers.utils.Interface {

.map((v) => v[0])
.map(generateInterfaceFunctionDescription)
.map(functions_1.generateInterfaceFunctionDescription)
.join('\n')}

@@ -37,3 +38,3 @@ };

.map((v) => v[0])
.map(generateEncodeFunctionDataOverload)
.map(functions_1.generateEncodeFunctionDataOverload)
.join('\n')}

@@ -43,3 +44,3 @@

.map((v) => v[0])
.map(generateDecodeFunctionResultOverload)
.map(functions_1.generateDecodeFunctionResultOverload)
.join('\n')}

@@ -50,3 +51,3 @@

.map((v) => v[0])
.map(generateInterfaceEventDescription)
.map(events_1.generateInterfaceEventDescription)
.join('\n')}

@@ -57,7 +58,7 @@ };

.map((v) => v[0])
.map(generateGetEventOverload)
.map(events_1.generateGetEventOverload)
.join('\n')}
}
${lodash_1.values(contract.events).map(generateEventTypeExports).join('\n')}
${lodash_1.values(contract.events).map(events_1.generateEventTypeExports).join('\n')}

@@ -109,3 +110,3 @@ export class ${contract.name} extends BaseContract {

filters: {
${lodash_1.values(contract.events).map(generateEventFilters).join('\n')}
${lodash_1.values(contract.events).map(events_1.generateEventFilters).join('\n')}
};

@@ -135,3 +136,3 @@

const constructorArgNamesWithoutOverrides = contract.constructor[0]
? generateParamNames(contract.constructor[0].inputs)
? functions_1.generateParamNames(contract.constructor[0].inputs)
: '';

@@ -251,84 +252,2 @@ const constructorArgNames = constructorArgNamesWithoutOverrides

}
function generateInterfaceFunctionDescription(fn) {
return `'${generateFunctionSignature(fn)}': FunctionFragment;`;
}
function generateFunctionSignature(fn) {
return `${fn.name}(${fn.inputs.map((input) => input.type.originalType).join(',')})`;
}
function generateEncodeFunctionDataOverload(fn) {
const methodInputs = [`functionFragment: '${fn.name}'`];
if (fn.inputs.length) {
methodInputs.push(`values: [${fn.inputs.map((input) => types_1.generateInputType(input.type)).join(', ')}]`);
}
else {
methodInputs.push('values?: undefined');
}
return `encodeFunctionData(${methodInputs.join(', ')}): string;`;
}
function generateDecodeFunctionResultOverload(fn) {
return `decodeFunctionResult(functionFragment: '${fn.name}', data: BytesLike): Result;`;
}
function generateParamNames(params) {
return params.map((param, index) => param.name || `arg${index}`).join(', ');
}
function generateEventFilters(events) {
if (events.length === 1) {
return generateEventFilter(events[0], true);
}
else {
return events.map((e) => generateEventFilter(e, false)).join('\n');
}
}
function generateEventFilter(event, includeNameFilter) {
const components = event.inputs.map((input, i) => { var _a; return ({ name: (_a = input.name) !== null && _a !== void 0 ? _a : `arg${i.toString()}`, type: input.type }); });
const arrayOutput = types_1.generateOutputComplexTypeAsArray(components);
const objectOutput = types_1.generateOutputComplexTypesAsObject(components) || '{}';
let filter = `
'${generateEventSignature(event)}'(${generateEventTypes(event.inputs)}): TypedEventFilter<${arrayOutput}, ${objectOutput}>;
`;
if (includeNameFilter) {
filter += `
${event.name}(${generateEventTypes(event.inputs)}): TypedEventFilter<${arrayOutput}, ${objectOutput}>;
`;
}
return filter;
}
function generateEventTypeExports(events) {
if (events.length === 1) {
return generateEventTypeExport(events[0], false);
}
else {
return events.map((e) => generateEventTypeExport(e, true)).join('\n');
}
}
function generateEventTypeExport(event, includeArgTypes) {
const components = event.inputs.map((input, i) => { var _a; return ({ name: (_a = input.name) !== null && _a !== void 0 ? _a : `arg${i.toString()}`, type: input.type }); });
const arrayOutput = types_1.generateOutputComplexTypeAsArray(components);
const objectOutput = types_1.generateOutputComplexTypesAsObject(components) || '{}';
return `
export type ${event.name}${includeArgTypes ? event.inputs.map((input) => '_' + input.type.originalType).join('') + '_Event' : 'Event'} = TypedEvent<${arrayOutput} & ${objectOutput}>;
`;
}
function generateInterfaceEventDescription(event) {
return `'${generateEventSignature(event)}': EventFragment;`;
}
function generateEventSignature(event) {
return `${event.name}(${event.inputs.map((input) => input.type.originalType).join(',')})`;
}
function generateEventTypes(eventArgs) {
if (eventArgs.length === 0) {
return '';
}
return (eventArgs
.map((arg) => {
return `${arg.name}?: ${generateEventArgType(arg)}`;
})
.join(', ') + ', ');
}
function generateEventArgType(eventArg) {
return eventArg.isIndexed ? `${types_1.generateInputType(eventArg.type)} | null` : 'null';
}
function generateGetEventOverload(event) {
return `getEvent(nameOrSignatureOrTopic: '${event.name}'): EventFragment;`;
}
function pushImportIfUsed(importName, generatedCode, importArray) {

@@ -335,0 +254,0 @@ if (new RegExp(`\\W${importName}(\\W|$)`).test(generatedCode))

@@ -21,4 +21,3 @@ import { BytecodeWithLinkReferences, CodegenConfig, Config, Contract, FileDescription, TypeChainTarget } from 'typechain';

afterRun(): FileDescription[];
private genCommons;
private genReExports;
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const fs_1 = require("fs");
const lodash_1 = require("lodash");

@@ -94,4 +95,4 @@ const path_1 = require("path");

{
path: path_1.join(this.outDirAbs, 'commons.ts'),
contents: this.genCommons(),
path: path_1.join(this.outDirAbs, 'common.d.ts'),
contents: fs_1.readFileSync(path_1.join(__dirname, '../static/common.d.ts'), 'utf-8'),
},

@@ -106,23 +107,2 @@ {

}
genCommons() {
return `
import { EventFilter, Event } from 'ethers'
import { Result } from '@ethersproject/abi'
export interface TypedEventFilter<_EventArgsArray, _EventArgsObject> extends EventFilter {}
export interface TypedEvent<EventArgs extends Result> extends Event {
args: EventArgs;
}
export type TypedListener<EventArgsArray extends Array<any>, EventArgsObject> = (...listenerArg: [...EventArgsArray, TypedEvent<EventArgsArray & EventArgsObject>]) => void;
export type MinEthersFactory<C, ARGS> = {
deploy(...a: ARGS[]): Promise<C>
}
export type GetContractTypeFromFactory<F> = F extends MinEthersFactory<infer C, any> ? C : never
export type GetARGsTypeFromFactory<F> = F extends MinEthersFactory<any, any> ? Parameters<F['deploy']> : never
`;
}
genReExports() {

@@ -129,0 +109,0 @@ const codegen = [];

@@ -11,3 +11,3 @@ {

],
"version": "7.1.0",
"version": "7.1.1",
"license": "MIT",

@@ -14,0 +14,0 @@ "repository": "https://github.com/ethereum-ts/Typechain",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc