@openzeppelin/hardhat-upgrades
Version:
[](https://docs.openzeppelin.com/upgrades-plugins/hardhat-upgrades) [](https://www.npmjs.org/package/@openzeppelin/h
19 lines • 1.08 kB
JavaScript
import debug from './utils/debug.js';
import { getContractAddress } from './utils/index.js';
import { disableDefender } from './defender/utils.js';
import { attach } from './utils/ethers.js';
import { makeEthersBinding, contractInfo } from './ethers-binding.js';
import { upgradeProxy as engineUpgradeProxy } from './engine/upgrade-proxy.js';
export function makeUpgradeProxy(hre, defenderModule, connection, log = debug) {
return async function upgradeProxy(proxy, ImplFactory, opts = {}) {
disableDefender(hre, defenderModule, opts, upgradeProxy.name);
const proxyAddress = await getContractAddress(proxy);
const binding = makeEthersBinding(hre, connection, ImplFactory.runner, opts);
const { sent } = await engineUpgradeProxy(binding, proxyAddress, contractInfo(ImplFactory), opts, log);
const inst = attach(ImplFactory, proxyAddress);
// @ts-ignore Won't be readonly because inst was created through attach.
inst.deployTransaction = sent.txResponse;
return inst;
};
}
//# sourceMappingURL=upgrade-proxy.js.map