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