TypeChain
TypeChain copied to clipboard
Generated types are broken if contract function names clash with ethers built-ins
Example: This contract has a target
property. The ethers v6 type generated by TypeChain looks like this:
/*
* Interface 'Module' incorrectly extends interface 'BaseContract'.
* Types of property 'target' are incompatible.
* Type 'TypedContractMethod<[], [string], "view">' is not assignable to type 'string | Addressable'.ts(2430)
*/
export interface Module extends BaseContract {
// ~~~~~~
// ...
target: TypedContractMethod<[], [string], "view">;
// ...
}
Expected behavior: TypeChain should probably skip over functions that clash with ethers built-ins.