UNPKG

ethereum-waffle

Version:

Sweeter, faster and simpler than truffle.

29 lines 1.24 kB
import { ContractFactory } from 'ethers'; import { isStandard, hasByteCode } from './ContractJSON'; const isFactory = (contract) => 'call' in contract; export async function deployContract(wallet, factoryOrContractJson, args = [], overrideOptions = {}) { if (isFactory(factoryOrContractJson)) { const Factory = factoryOrContractJson; const contractFactory = new Factory(wallet); const contract = await contractFactory.deploy(...args, overrideOptions); await contract.deployed(); return contract; } else { const contract = await deployFromJson(wallet, factoryOrContractJson, args, overrideOptions); return contract; } } async function deployFromJson(wallet, contractJson, args, overrideOptions) { const bytecode = isStandard(contractJson) ? contractJson.evm.bytecode : contractJson.bytecode; if (!hasByteCode(bytecode)) { throw new Error('Cannot deploy contract with empty bytecode'); } const factory = new ContractFactory(contractJson.abi, bytecode, wallet); const contract = await factory.deploy(...args, { ...overrideOptions }); await contract.deployed(); return contract; } //# sourceMappingURL=deployContract.js.map