{"version":"0.1","summaries":[{"title":"ContractFactory","blocks":[{"link":"/v5/api/contract/contract-factory/#ContractFactory","text":"To deploy a Contract, additional information is needed that is not available on a Contract object itself."},{"link":"/v5/api/contract/contract-factory/#ContractFactory","text":"Mainly, the bytecode (more specifically the initcode) of a contract is required."},{"link":"/v5/api/contract/contract-factory/#ContractFactory","text":"The Contract Factory sends a special type of transaction, an initcode transaction (i.e."},{"link":"/v5/api/contract/contract-factory/#ContractFactory","text":"the to field is null, and the data field is the initcode) where the initcode will be evaluated and the result becomes the new code to be deployed as a new contract."}]},{"title":"ContractFactory -- Creating Instances -- new ethers.ContractFactory( interface , bytecode [ , signer ] )","blocks":[{"link":"/v5/api/contract/contract-factory/#ContractFactory--creating","text":"Creates a new instance of a ContractFactory for the contract described by the interface and bytecode initcode."}]},{"title":"ContractFactory -- Creating Instances -- ContractFactory.fromSolidity( compilerOutput [ , signer ] ) => ContractFactory","blocks":[{"link":"/v5/api/contract/contract-factory/#ContractFactory--creating","text":"Consumes the output of the Solidity compiler, extracting the ABI and bytecode from it, allowing for the various formats the solc compiler has emitted over its life."}]},{"title":"ContractFactory -- Creating Instances -- contractFactory.connect( signer ) => Contract","blocks":[{"link":"/v5/api/contract/contract-factory/#ContractFactory-connect","text":"Returns a new instance of the ContractFactory with the same interface and bytecode, but with a different signer."}]},{"title":"ContractFactory -- Properties -- contractFactory.interface => Interface","blocks":[{"link":"/v5/api/contract/contract-factory/#ContractFactory--properties","text":"The Contract interface."}]},{"title":"ContractFactory -- Properties -- contractFactory.bytecode => string< DataHexString >","blocks":[{"link":"/v5/api/contract/contract-factory/#ContractFactory--properties","text":"The bytecode (i.e."},{"link":"/v5/api/contract/contract-factory/#ContractFactory--properties","text":"initcode) that this ContractFactory will use to deploy the Contract."}]},{"title":"ContractFactory -- Properties -- contractFactory.signer => Signer","blocks":[{"link":"/v5/api/contract/contract-factory/#ContractFactory--properties","text":"The Signer (if any) this ContractFactory will use to deploy instances of the Contract to the Blockchain."}]},{"title":"ContractFactory -- Methods -- contractFactory.attach( address ) => Contract","blocks":[{"link":"/v5/api/contract/contract-factory/#ContractFactory-attach","text":"Return an instance of a Contract attached to address."},{"link":"/v5/api/contract/contract-factory/#ContractFactory-attach","text":"This is the same as using the Contract constructor with address and this the interface and signerOrProvider passed in when creating the ContractFactory."}]},{"title":"ContractFactory -- Methods -- contractFactory.getDeployTransaction( ...args [ , overrides ] ) => UnsignedTransaction","blocks":[{"link":"/v5/api/contract/contract-factory/#ContractFactory--methods","text":"Returns the unsigned transaction which would deploy this Contract with args passed to the Contract's constructor."},{"link":"/v5/api/contract/contract-factory/#ContractFactory--methods","text":"If the optional overrides is specified, they can be used to override the endowment value, transaction nonce, gasLimit or gasPrice."}]},{"title":"ContractFactory -- Methods -- contractFactory.deploy( ...args [ , overrides ] ) => Promise< Contract >","blocks":[{"link":"/v5/api/contract/contract-factory/#ContractFactory-deploy","text":"Uses the signer to deploy the Contract with args passed into the constructor and returns a Contract which is attached to the address where this contract will be deployed once the transaction is mined."},{"link":"/v5/api/contract/contract-facto