-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reexport generated struct types #96
Comments
Ping? I can try adding this myself if you're agreed that it's useful to reexport generated types |
Hey @Pzixel! Yes, this looks definitely like an important feature but I am not sure what exactly causes the problem. Structs should be exported in a code that TypeChain generates. You might just need a different import path to get them. Have you tried that? |
Hi! Sorry, I'm not following which path you mean. I don't see any |
Hi. Ping? I think this is quite crucial. I think I just might fix this, but I'm confused by you saying it already should work. Could you please take a look on example I provide? Where can we find these types? If we look at import { providers, Signer } from 'ethers';
import * as types from './types';
export declare function getContract(address: string, abi: object, defaultSignerOrProvider: Signer | providers.Provider): any;
export declare type MainnetSdk = ReturnType<typeof getMainnetSdk>; So we dive into import type * as mainnet from "./mainnet";
export type { mainnet };
export * as factories from "./factories";
export type { UniswapV3 } from "./mainnet/UniswapV3";
export { UniswapV3__factory } from "./factories/mainnet/UniswapV3__factory"; And this is it. As you can see only |
I've just took a look and it looks like typechain isn't giving any names to such types. So I might start from there and then return here. You see even if typechain was properly generating intermediate structs they wouldn't be accessible since they aren't reexported |
Consider following config:
Now If we call it it all compiles:
However, if we try to specify struct name it won't work:
The problem is type is not reexported so it cannot be accessed outside. It may be useful in cases when I want to write a function like
P.S. for some reason generation doesn't work for all types. For example following config:
Leads to
Note that it didn't generate proper named struct for ABI.
The text was updated successfully, but these errors were encountered: