dethcrypto / TypeChain

🔌 TypeScript bindings for Ethereum smart contracts
MIT License
2.76k stars 365 forks source link

Generated types are broken if contract function names clash with ethers built-ins #886

Open jfschwarz opened 11 months ago

jfschwarz commented 11 months ago

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.