@openzeppelin/hardhat-upgrades
Version:
[](https://docs.openzeppelin.com/upgrades-plugins/hardhat-upgrades) [](https://www.npmjs.org/package/@openzeppelin/h
19 lines • 1.21 kB
JavaScript
import { getUpgradeableBeaconFactory } from './utils/index.js';
import { disableDefender } from './defender/utils.js';
import { attach, getSigner } from './utils/ethers.js';
import { makeEthersBinding, contractInfo } from './ethers-binding.js';
import { deployBeacon as engineDeployBeacon } from './engine/deploy-beacon.js';
export function makeDeployBeacon(hre, defenderModule, connection) {
return async function deployBeacon(ImplFactory, opts = {}) {
disableDefender(hre, defenderModule, opts, deployBeacon.name);
const binding = makeEthersBinding(hre, connection, ImplFactory.runner, opts);
const beaconDeployment = await engineDeployBeacon(binding, contractInfo(ImplFactory), opts);
const signer = getSigner(ImplFactory.runner);
const UpgradeableBeaconFactory = await getUpgradeableBeaconFactory(connection, signer);
const beaconContract = attach(UpgradeableBeaconFactory, beaconDeployment.address);
// @ts-ignore Won't be readonly because beaconContract was created through attach.
beaconContract.deployTransaction = beaconDeployment.deployTransaction;
return beaconContract;
};
}
//# sourceMappingURL=deploy-beacon.js.map