@excubiae/contracts
Version:
36 lines • 1.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.deployProxyClone = exports.getProxyContract = void 0;
/**
* Get proxy contract from deployed proxy factory contract and receipt.
*
* @param args get proxy contract arguments
* @returns proxied contract
*/
const getProxyContract = async ({ factory, proxyFactory, receipt, signer }) => {
if (!signer) {
throw new Error("No signer provided");
}
const address = await proxyFactory
.queryFilter(proxyFactory.filters.CloneDeployed, receipt?.blockNumber, receipt?.blockNumber)
.then(([event]) => event.args[0]);
return factory.connect(signer).attach(address);
};
exports.getProxyContract = getProxyContract;
/**
* Deploy proxy clone instance.
*
* @param args deploy proxy clone arguments
* @returns clone contract
*/
const deployProxyClone = async ({ factory, proxyFactory, signer, args }) => {
const receipt = await proxyFactory.deploy(...args).then((tx) => tx.wait());
return (0, exports.getProxyContract)({
factory,
proxyFactory,
receipt,
signer
});
};
exports.deployProxyClone = deployProxyClone;
//# sourceMappingURL=deploy.js.map