@openzeppelin/hardhat-upgrades
Version:
[](https://docs.openzeppelin.com/upgrades-plugins/hardhat-upgrades) [](https://www.npmjs.org/package/@openzeppelin/h
17 lines • 998 B
JavaScript
import { deployBeaconProxy as engineDeployBeaconProxy } from '../engine/deploy-beacon-proxy.js';
import { asAddress, getAbi, getContractAddress, getViemContractAt, makeBinding, } from './utils.js';
export function makeDeployBeaconProxy(hre, connection) {
return async function deployBeaconProxy(beacon, contractName, args = [], opts = {}) {
if (!Array.isArray(args)) {
opts = args;
args = [];
}
const binding = await makeBinding(hre, connection, opts);
// The contract name identifies the beacon's current implementation. Only its ABI is used,
// to encode the initializer call.
const attachToAbi = await getAbi(hre, contractName);
const proxyDeployment = await engineDeployBeaconProxy(binding, getContractAddress(beacon), attachToAbi, args, opts);
return getViemContractAt(connection, contractName, asAddress(proxyDeployment.address), opts.client);
};
}
//# sourceMappingURL=deploy-beacon-proxy.js.map