Closed nedsalk closed 1 month ago
Wouldn't this include the bytecode in the final bundle regardless of being in use?
Wouldn't this include the bytecode in the final bundle regardless of being in use?
If the factory is not in use then I believe it'll be treeshaken.
I think it must be at least in a separate file:
import { Counter, deployCounter } from './typegend';
Pseudo code:
import { Account, DeployContractOptions, DeployContractResult, ContractFactory } from 'fuels';
import { Counter, abi, storageSlots } from './Counter'
export const counterBytecode = '0x1af03..';
export async function deployCounter(
wallet: Account,
options: DeployContractOptions = {}
): Promise<DeployContractResult<Counter>> {
const factory = new ContractFactory(counterBytecode, abi, wallet);
return factory.deployContract<Counter>({
storageSlots,
...options,
});
}
We are currently outputting the bytecode of a contract in a separate file, which forces people to do two imports:
By putting the bytecode on the factory and integrating it with the factory properly, this can be reduced to only one import: