UNPKG

@openzeppelin/hardhat-upgrades

Version:

[![Docs](https://img.shields.io/badge/docs-%F0%9F%93%84-blue)](https://docs.openzeppelin.com/upgrades-plugins/hardhat-upgrades) [![NPM Package](https://img.shields.io/npm/v/@openzeppelin/hardhat-upgrades.svg)](https://www.npmjs.org/package/@openzeppelin/h

19 lines • 1.21 kB
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