2021-12-05 05:23:21 +00:00
|
|
|
import { ethers } from "hardhat";
|
|
|
|
|
2021-12-05 20:04:41 +00:00
|
|
|
const network = String(process.env.networkType);
|
|
|
|
|
2021-12-05 20:15:02 +00:00
|
|
|
import { addresses as addressesPolygon } from "./polygon/addresses";
|
2021-12-05 20:04:41 +00:00
|
|
|
import { addresses } from "./mainnet/addresses";
|
2021-12-05 05:23:21 +00:00
|
|
|
import { abis } from "../constant/abis";
|
|
|
|
import { abi } from "../../deployements/mainnet/Implementation_m1.sol/InstaImplementationM1.json";
|
|
|
|
|
2021-12-05 20:04:41 +00:00
|
|
|
function getAddress(network: string | undefined) {
|
|
|
|
if (network === "polygon") return addressesPolygon.core.instaIndex;
|
|
|
|
// else if (network === "arbitrum") return addressesPolygon.core.instaIndex;
|
|
|
|
// else if (network === "avalanche") return addressesPolygon.core.instaIndex;
|
|
|
|
else return addresses.core.instaIndex;
|
|
|
|
}
|
|
|
|
|
2021-12-05 19:10:22 +00:00
|
|
|
export async function buildDSAv2(owner: any) {
|
2021-12-05 05:23:21 +00:00
|
|
|
const instaIndex = await ethers.getContractAt(
|
|
|
|
abis.core.instaIndex,
|
2021-12-05 20:04:41 +00:00
|
|
|
getAddress(String(process.env.networkType))
|
2021-12-05 05:23:21 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
const tx = await instaIndex.build(owner, 2, owner);
|
|
|
|
const receipt = await tx.wait();
|
|
|
|
const event = receipt.events.find(
|
|
|
|
(a: { event: string }) => a.event === "LogAccountCreated"
|
|
|
|
);
|
|
|
|
return await ethers.getContractAt(abi, event.args.account);
|
2021-12-05 19:10:22 +00:00
|
|
|
}
|