import { Interface } from "../abi/index.js"; import { BaseContract } from "./contract.js"; import type { InterfaceAbi } from "../abi/index.js"; import type { Addressable } from "../address/index.js"; import type { ContractRunner } from "../providers/index.js"; import type { BytesLike } from "../utils/index.js"; import type { ContractInterface, ContractMethodArgs, ContractDeployTransaction } from "./types.js"; import type { ContractTransactionResponse } from "./wrappers.js"; /** * A **ContractFactory** is used to deploy a Contract to the blockchain. */ export declare class ContractFactory = Array, I = BaseContract> { /** * The Contract Interface. */ readonly interface: Interface; /** * The Contract deployment bytecode. Often called the initcode. */ readonly bytecode: string; /** * The ContractRunner to deploy the Contract as. */ readonly runner: null | ContractRunner; /** * Create a new **ContractFactory** with %%abi%% and %%bytecode%%, * optionally connected to %%runner%%. * * The %%bytecode%% may be the ``bytecode`` property within the * standard Solidity JSON output. */ constructor(abi: Interface | InterfaceAbi, bytecode: BytesLike | { object: string; }, runner?: null | ContractRunner); attach(target: string | Addressable): BaseContract & Omit; /** * Resolves to the transaction to deploy the contract, passing %%args%% * into the constructor. */ getDeployTransaction(...args: ContractMethodArgs): Promise; /** * Resolves to the Contract deployed by passing %%args%% into the * constructor. * * This will resovle to the Contract before it has been deployed to the * network, so the [[BaseContract-waitForDeployment]] should be used before * sending any transactions to it. */ deploy(...args: ContractMethodArgs): Promise>; /** * Return a new **ContractFactory** with the same ABI and bytecode, * but connected to %%runner%%. */ connect(runner: null | ContractRunner): ContractFactory; /** * Create a new **ContractFactory** from the standard Solidity JSON output. */ static fromSolidity = Array, I = ContractInterface>(output: any, runner?: ContractRunner): ContractFactory; } //# sourceMappingURL=factory.d.ts.map