TypeChain
TypeChain copied to clipboard
Overloads not generated for encode/decodeFunctionData
The following contract:
contract Overloads {
function myFunc(uint a) public {}
function myFunc(bool b) public {}
}
generates an interface like this:
export interface OverloadInterface extends utils.Interface {
contractName: "Overload";
functions: {
"myFunc(bool)": FunctionFragment;
};
encodeFunctionData(functionFragment: "myFunc", values: [boolean]): string;
decodeFunctionResult(functionFragment: "myFunc", data: BytesLike): Result;
events: {};
}
which has an incomplete functions
object, and invalid encodeFunctionData
and decodeFunctionData
.
It should be:
export interface OverloadInterface extends utils.Interface {
contractName: "Overload";
functions: {
"myFunc(bool)": FunctionFragment;
"myFunc(uint256)": FunctionFragment;
};
encodeFunctionData(functionFragment: "myFunc(bool)", values: [boolean]): string;
encodeFunctionData(functionFragment: "myFunc(uint256)", values: [BigNumberish]): string;
decodeFunctionResult(functionFragment: "myFunc(bool)", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "myFunc(uint256)", data: BytesLike): Result;
events: {};
}
I'm having the same issue, any update on this?