UNPKG

ethereum-waffle

Version:

Sweeter, faster and simpler than truffle.

33 lines 1.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deployContract = void 0; const ethers_1 = require("ethers"); const ContractJSON_1 = require("./ContractJSON"); const isFactory = (contract) => 'call' in contract; 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; } } exports.deployContract = deployContract; async function deployFromJson(wallet, contractJson, args, overrideOptions) { const bytecode = (0, ContractJSON_1.isStandard)(contractJson) ? contractJson.evm.bytecode : contractJson.bytecode; if (!(0, ContractJSON_1.hasByteCode)(bytecode)) { throw new Error('Cannot deploy contract with empty bytecode'); } const factory = new ethers_1.ContractFactory(contractJson.abi, bytecode, wallet); const contract = await factory.deploy(...args, { ...overrideOptions }); await contract.deployed(); return contract; } //# sourceMappingURL=deployContract.js.map