@lifi/contract-types package includes TypeChain-generated factory classes for all LiFi contracts. These factories provide type-safe methods to deploy new contracts or connect to existing ones.
What are Factories?
Factories are TypeScript classes generated by TypeChain that provide:- Type Safety: Full TypeScript types for all contract methods, events, and parameters
- Deployment: Methods to deploy new contract instances
- Connection: Methods to connect to existing deployed contracts
- ABI Access: Direct access to contract ABIs
- Bytecode: Access to contract bytecode for deployment
Factory Naming Convention
All factories follow the naming pattern:{ContractName}__factory
Examples:
GenericSwapFacet→GenericSwapFacet__factoryExecutor→Executor__factoryDiamondCutFacet→DiamondCutFacet__factory
Available Factories
Bridge Facets
AcrossFacet__factoryAcrossFacetV3__factoryArbitrumBridgeFacet__factoryHopFacet__factoryStargateFacet__factory- And many more…
Swap Facets
GenericSwapFacet__factoryGenericSwapFacetV3__factorySwapperV2__factory
Utility Facets
Executor__factoryFeeCollector__factoryWithdrawFacet__factoryWhitelistManagerFacet__factoryAccessManagerFacet__factory
Diamond Standard
DiamondCutFacet__factoryDiamondLoupeFacet__factoryOwnershipFacet__factory
Interfaces
ILiFi__factoryIERC20__factoryIDiamondLoupe__factory
Common Factory Properties
All factories expose the following static properties:Import Patterns
Individual Import
Multiple Imports
Factories Directory Import
Type Imports
Factories work with their corresponding contract types:Next Steps
- See Factory Usage for detailed examples
- Explore specific facet documentation for contract-specific usage
- Check the TypeChain documentation for advanced features