diff --git a/scripts/tests/addLiquidity.ts b/scripts/tests/addLiquidity.ts index 057f384b..7263e786 100644 --- a/scripts/tests/addLiquidity.ts +++ b/scripts/tests/addLiquidity.ts @@ -6,6 +6,7 @@ import { tokenMapping as polygonMapping } from "./polygon/tokens"; import { tokenMapping as avalancheMapping } from "./avalanche/tokens"; import { tokenMapping as optimismMapping } from "./optimism/tokens"; import { tokenMapping as arbitrumMapping } from "./arbitrum/tokens"; +import { tokenMapping as fantomMapping } from "./fantom/tokens"; const mineTx = async (tx: any) => { await (await tx).wait(); @@ -16,7 +17,8 @@ const tokenMapping: Record> = { polygon: polygonMapping, avalanche: avalancheMapping, optimism: optimismMapping, - arbitrum: arbitrumMapping + arbitrum: arbitrumMapping, + fantom: fantomMapping }; export async function addLiquidity(tokenName: string, address: any, amt: any) { diff --git a/scripts/tests/buildDSAv2.ts b/scripts/tests/buildDSAv2.ts index e54dd68d..311a5f0e 100644 --- a/scripts/tests/buildDSAv2.ts +++ b/scripts/tests/buildDSAv2.ts @@ -4,6 +4,7 @@ import { addresses as addressesPolygon } from "./polygon/addresses"; import { addresses as addressesArbitrum } from "./arbitrum/addresses"; import { addresses as addressesAvalanche } from "./avalanche/addresses"; import { addresses as addressesOptimism } from "./optimism/addresses"; +import { addresses as addressesFantom } from "./fantom/addresses"; import { addresses } from "./mainnet/addresses"; import { abis } from "../constant/abis"; import { abi } from "../../deployements/mainnet/Implementation_m1.sol/InstaImplementationM1.json"; @@ -13,6 +14,7 @@ function getAddress(network: string | undefined) { else if (network === "arbitrum") return addressesArbitrum.core.instaIndex; else if (network === "avalanche") return addressesAvalanche.core.instaIndex; else if (network === "optimism") return addressesOptimism.core.instaIndex; + else if (network === "fantom") return addressesFantom.core.instaIndex; else return addresses.core.instaIndex; } diff --git a/scripts/tests/deployAndEnableConnector.ts b/scripts/tests/deployAndEnableConnector.ts index fe3d71dd..7a713c69 100644 --- a/scripts/tests/deployAndEnableConnector.ts +++ b/scripts/tests/deployAndEnableConnector.ts @@ -4,6 +4,7 @@ import { abis } from "../constant/abis"; import { addresses as addressesArbitrum } from "./arbitrum/addresses"; import { addresses as addressesAvalanche } from "./avalanche/addresses"; import { addresses as addressesOptimism } from "./optimism/addresses"; +import { addresses as addressesFantom } from "./fantom/addresses"; import hre from "hardhat"; import type { Signer, Contract } from "ethers"; @@ -24,6 +25,7 @@ function getAddress(network: string | undefined) { else if (network === "arbitrum") return addressesArbitrum; else if (network === "avalanche") return addressesAvalanche; else if (network === "optimism") return addressesOptimism; + else if (network === "fantom") return addressesFantom; else return addresses; } diff --git a/scripts/tests/fantom/addresses.ts b/scripts/tests/fantom/addresses.ts new file mode 100644 index 00000000..53113e1d --- /dev/null +++ b/scripts/tests/fantom/addresses.ts @@ -0,0 +1,11 @@ +export const addresses: Record = { + connectors: { + // basic: "0x6214f9c4F9700fc7a50B5f9aEEB819d647406Ac7", + // auth: "0xD6daA927ad756a4022858dddcc4E26137b30DB4D", + // "INSTAPOOL-A": "0x8f1e38c53af7bD2b2bE01b9580911b7Cca504F1b", + }, + core: { + connectorsV2: "0x819910794a030403F69247E1e5C0bBfF1593B968", + instaIndex: "0x2fa042BEEB7A40A7078EaA5aC755e3842248292b", + }, +}; diff --git a/scripts/tests/fantom/tokens.ts b/scripts/tests/fantom/tokens.ts new file mode 100644 index 00000000..17523914 --- /dev/null +++ b/scripts/tests/fantom/tokens.ts @@ -0,0 +1,64 @@ +import { Provider } from "@ethersproject/abstract-provider"; +import { Signer } from "@ethersproject/abstract-signer"; +import { ethers } from "hardhat"; + +const mineTx = async (tx: any) => { + await (await tx).wait(); +}; + +export const tokens = { + ftm: { + type: "token", + symbol: "FTM", + name: "Fantom", + address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", + decimals: 18, + }, + dai: { + type: "token", + symbol: "DAI", + name: "DAI Stable", + address: "0x8D11eC38a3EB5E956B052f67Da8Bdc9bef8Abf3E", + decimals: 18, + }, + usdc: { + type: "token", + symbol: "USDC", + name: "USD Coin", + address: "0x04068DA6C83AFCFA0e13ba15A6696662335D5B75", + decimals: 6, + }, +}; + +export const tokenMapping: Record = { + usdc: { + impersonateSigner: "0x4188663a85C92EEa35b5AD3AA5cA7CeB237C6fe9", + address: "0x04068DA6C83AFCFA0e13ba15A6696662335D5B75", + abi: [ + "function mint(address _to, uint256 _amount) external returns (bool);", + ], + process: async function (owner: Signer | Provider, to: any, amt: any) { + const contract = new ethers.Contract(this.address, this.abi, owner); + + await mineTx(contract.mint(to, amt)); + }, + }, + dai: { + impersonateSigner: "0x9bdB521a97E95177BF252C253E256A60C3e14447", + address: "0x8D11eC38a3EB5E956B052f67Da8Bdc9bef8Abf3E", + abi: ["function transfer(address to, uint value)"], + process: async function (owner: Signer | Provider, to: any, amt: any) { + const contract = new ethers.Contract(this.address, this.abi, owner); + await mineTx(contract.transfer(to, amt)); + }, + }, + // inst: { + // impersonateSigner: "0x75e89d5979E4f6Fba9F97c104c2F0AFB3F1dcB88", + // address: "0x6f40d4a6237c257fff2db00fa0510deeecd303eb", + // abi: ["function transfer(address to, uint value)"], + // process: async function (owner: Signer | Provider, address: any, amt: any) { + // const contract = new ethers.Contract(this.address, this.abi, owner); + // await mineTx(contract.transfer(address, amt)); + // }, + // }, +}; diff --git a/scripts/tests/getMasterSigner.ts b/scripts/tests/getMasterSigner.ts index 040e4e4f..f97a21d0 100644 --- a/scripts/tests/getMasterSigner.ts +++ b/scripts/tests/getMasterSigner.ts @@ -4,6 +4,7 @@ import { addresses as addressesPolygon } from "./polygon/addresses"; import { addresses as addressesArbitrum } from "./arbitrum/addresses"; import { addresses as addressesAvalanche } from "./avalanche/addresses"; import { addresses as addressesOptimism } from "./optimism/addresses"; +import { addresses as addressesFantom } from "./fantom/addresses"; import { abis } from "../constant/abis"; function getAddress(network: string | undefined) { @@ -11,6 +12,7 @@ function getAddress(network: string | undefined) { else if (network === "arbitrum") return addressesArbitrum.core.instaIndex; else if (network === "avalanche") return addressesAvalanche.core.instaIndex; else if (network === "optimism") return addressesOptimism.core.instaIndex; + else if (network === "fantom") return addressesFantom.core.instaIndex; else return addresses.core.instaIndex; } diff --git a/scripts/tests/run-tests.ts b/scripts/tests/run-tests.ts index 5b2f22bd..d8edc081 100644 --- a/scripts/tests/run-tests.ts +++ b/scripts/tests/run-tests.ts @@ -12,7 +12,7 @@ async function testRunner() { name: "chain", message: "What chain do you want to run tests on?", type: "list", - choices: ["mainnet", "polygon", "avalanche", "arbitrum", "optimism"], + choices: ["mainnet", "polygon", "avalanche", "arbitrum", "optimism", "fantom"], }, ]); const testsPath = join(__dirname, "../../test", chain);