Gelato-automations/deploy/connectors/ConnectGelatoDataForFullRefinance.deploy.js

70 lines
2.1 KiB
JavaScript

const hre = require("hardhat");
const {ethers} = hre;
const {sleep} = require("@gelatonetwork/core");
const InstaConnector = require("../../pre-compiles/InstaConnectors.json");
module.exports = async (hre) => {
if (hre.network.name === "mainnet") {
console.log(
"Deploying ConnectGelatoDataForFullRefinance to mainnet. Hit ctrl + c to abort"
);
await sleep(10000);
}
const {deployments} = hre;
const {deploy} = deployments;
const {deployer} = await hre.getNamedAccounts();
const instaConnectors = await hre.ethers.getContractAt(
InstaConnector.abi,
hre.network.config.InstaConnectors
);
const connectorLength = await instaConnectors.connectorLength();
const connectorId = connectorLength.add(1);
// the following will only deploy "ConnectGelatoDataForFullRefinance"
// if the contract was never deployed or if the code changed since last deployment
await deploy("ConnectGelatoDataForFullRefinance", {
from: deployer,
args: [
connectorId,
(await deployments.get("ConnectGelatoProviderPayment")).address,
],
gasPrice: hre.network.config.gasPrice,
log: hre.network.name === "mainnet" ? true : false,
});
if (hre.network.name === "hardhat") {
const deployerWallet = await ethers.provider.getSigner(deployer);
const instaMaster = await ethers.provider.getSigner(
hre.network.config.InstaMaster
);
await deployerWallet.sendTransaction({
to: await instaMaster.getAddress(),
value: ethers.utils.parseEther("0.1"),
});
await hre.network.provider.request({
method: "hardhat_impersonateAccount",
params: [await instaMaster.getAddress()],
});
await instaConnectors
.connect(instaMaster)
.enable(
(await ethers.getContract("ConnectGelatoDataForFullRefinance")).address
);
await hre.network.provider.request({
method: "hardhat_stopImpersonatingAccount",
params: [await instaMaster.getAddress()],
});
}
};
module.exports.dependencies = ["ConnectGelatoProviderPayment"];
module.exports.tags = ["ConnectGelatoDataForFullRefinance"];