mirror of
				https://github.com/Instadapp/dsa-connectors.git
				synced 2024-07-29 22:37:00 +00:00 
			
		
		
		
	updated sushi tests
This commit is contained in:
		
							parent
							
								
									da09b6b1cb
								
							
						
					
					
						commit
						99d9d17f23
					
				| 
						 | 
				
			
			@ -14,318 +14,134 @@ import { abis } from "../../../scripts/constant/abis";
 | 
			
		|||
import { ConnectV2Sushiswap__factory, ConnectV2Sushiswap } from "../../../typechain";
 | 
			
		||||
import type { Signer, Contract } from "ethers";
 | 
			
		||||
 | 
			
		||||
const DAI_ADDR = "0x6b175474e89094c44da98b954eedeac495271d0f"
 | 
			
		||||
const DAI_ADDR = "0x6b175474e89094c44da98b954eedeac495271d0f";
 | 
			
		||||
 | 
			
		||||
describe("Sushiswap", function () {
 | 
			
		||||
  const connectorName = "Sushiswap-v1"
 | 
			
		||||
  const connectorName = "Sushiswap-v1";
 | 
			
		||||
 | 
			
		||||
  let dsaWallet0: Contract;
 | 
			
		||||
  let masterSigner: Signer;
 | 
			
		||||
  let instaConnectorsV2: Contract;
 | 
			
		||||
  let connector: Contract;
 | 
			
		||||
 | 
			
		||||
  const wallets = provider.getWallets()
 | 
			
		||||
  const [wallet0, wallet1, wallet2, wallet3] = wallets
 | 
			
		||||
  const wallets = provider.getWallets();
 | 
			
		||||
  const [wallet0, wallet1, wallet2, wallet3] = wallets;
 | 
			
		||||
  before(async () => {
 | 
			
		||||
      await hre.network.provider.request({
 | 
			
		||||
          method: "hardhat_reset",
 | 
			
		||||
          params: [
 | 
			
		||||
              {
 | 
			
		||||
                  forking: {
 | 
			
		||||
                    // @ts-ignore
 | 
			
		||||
                      jsonRpcUrl: hre.config.networks.hardhat.forking.url,
 | 
			
		||||
                      blockNumber: 13005785,
 | 
			
		||||
                  },
 | 
			
		||||
              },
 | 
			
		||||
          ],
 | 
			
		||||
      });
 | 
			
		||||
      
 | 
			
		||||
      masterSigner = await getMasterSigner()
 | 
			
		||||
      instaConnectorsV2 = await ethers.getContractAt(abis.core.connectorsV2, addresses.core.connectorsV2);
 | 
			
		||||
      connector = await deployAndEnableConnector({
 | 
			
		||||
          connectorName,
 | 
			
		||||
          contractArtifact: ConnectV2Sushiswap__factory,
 | 
			
		||||
          signer: masterSigner,
 | 
			
		||||
          connectors: instaConnectorsV2
 | 
			
		||||
      })
 | 
			
		||||
      console.log("Connector address", connector.address)
 | 
			
		||||
  })
 | 
			
		||||
    await hre.network.provider.request({
 | 
			
		||||
      method: "hardhat_reset",
 | 
			
		||||
      params: [
 | 
			
		||||
        {
 | 
			
		||||
          forking: {
 | 
			
		||||
            // @ts-ignore
 | 
			
		||||
            jsonRpcUrl: hre.config.networks.hardhat.forking.url,
 | 
			
		||||
            blockNumber: 13005785
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    masterSigner = await getMasterSigner();
 | 
			
		||||
    instaConnectorsV2 = await ethers.getContractAt(abis.core.connectorsV2, addresses.core.connectorsV2);
 | 
			
		||||
    connector = await deployAndEnableConnector({
 | 
			
		||||
      connectorName,
 | 
			
		||||
      contractArtifact: ConnectV2Sushiswap__factory,
 | 
			
		||||
      signer: masterSigner,
 | 
			
		||||
      connectors: instaConnectorsV2
 | 
			
		||||
    });
 | 
			
		||||
    console.log("Connector address", connector.address);
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it("Should have contracts deployed.", async function () {
 | 
			
		||||
      expect(!!instaConnectorsV2.address).to.be.true;
 | 
			
		||||
      expect(!!connector.address).to.be.true;
 | 
			
		||||
    expect(!!instaConnectorsV2.address).to.be.true;
 | 
			
		||||
    expect(!!connector.address).to.be.true;
 | 
			
		||||
    expect(!!(await masterSigner.getAddress())).to.be.true;
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  describe("DSA wallet setup", function () {
 | 
			
		||||
      it("Should build DSA v2", async function () {
 | 
			
		||||
          dsaWallet0 = await buildDSAv2(wallet0.address)
 | 
			
		||||
          expect(!!dsaWallet0.address).to.be.true;
 | 
			
		||||
    it("Should build DSA v2", async function () {
 | 
			
		||||
      dsaWallet0 = await buildDSAv2(wallet0.address);
 | 
			
		||||
      expect(!!dsaWallet0.address).to.be.true;
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    it("Deposit ETH & DAI into DSA wallet", async function () {
 | 
			
		||||
      await wallet0.sendTransaction({
 | 
			
		||||
        to: dsaWallet0.address,
 | 
			
		||||
        value: ethers.utils.parseEther("10")
 | 
			
		||||
      });
 | 
			
		||||
      expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.gte(ethers.utils.parseEther("10"));
 | 
			
		||||
 | 
			
		||||
      it("Deposit ETH & DAI into DSA wallet", async function () {
 | 
			
		||||
          await wallet0.sendTransaction({
 | 
			
		||||
              to: dsaWallet0.address,
 | 
			
		||||
              value: ethers.utils.parseEther("10")
 | 
			
		||||
          });
 | 
			
		||||
          expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.gte(ethers.utils.parseEther("10"));
 | 
			
		||||
      await addLiquidity("dai", dsaWallet0.address, ethers.utils.parseEther("100000"));
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
          await addLiquidity("dai", dsaWallet0.address, ethers.utils.parseEther("100000"));
 | 
			
		||||
    it("Deposit ETH & USDT into DSA wallet", async function () {
 | 
			
		||||
      await wallet0.sendTransaction({
 | 
			
		||||
        to: dsaWallet0.address,
 | 
			
		||||
        value: ethers.utils.parseEther("10")
 | 
			
		||||
      });
 | 
			
		||||
      expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.gte(ethers.utils.parseEther("10"));
 | 
			
		||||
 | 
			
		||||
      it("Deposit ETH & USDT into DSA wallet", async function () {
 | 
			
		||||
          await wallet0.sendTransaction({
 | 
			
		||||
              to: dsaWallet0.address,
 | 
			
		||||
              value: ethers.utils.parseEther("10")
 | 
			
		||||
          });
 | 
			
		||||
          expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.gte(ethers.utils.parseEther("10"));
 | 
			
		||||
 | 
			
		||||
          await addLiquidity("usdt", dsaWallet0.address, ethers.utils.parseEther("100000"));
 | 
			
		||||
      });
 | 
			
		||||
      await addLiquidity("usdt", dsaWallet0.address, ethers.utils.parseEther("100000"));
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  describe("Main", function () {
 | 
			
		||||
    it("Should deposit successfully", async function () {
 | 
			
		||||
      const ethAmount = ethers.utils.parseEther("0.1"); // 1 ETH
 | 
			
		||||
      const daiUnitAmount = ethers.utils.parseEther("4000"); // 1 ETH
 | 
			
		||||
      const ethAddress = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
 | 
			
		||||
 | 
			
		||||
      it("Should deposit successfully", async function () {
 | 
			
		||||
          const ethAmount = ethers.utils.parseEther("0.1") // 1 ETH
 | 
			
		||||
          const daiUnitAmount = ethers.utils.parseEther("4000") // 1 ETH
 | 
			
		||||
          const ethAddress = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
 | 
			
		||||
      const getId = "0";
 | 
			
		||||
      const setId = "0";
 | 
			
		||||
 | 
			
		||||
          const getId = "0"
 | 
			
		||||
          const setId = "0"
 | 
			
		||||
      const spells = [
 | 
			
		||||
        {
 | 
			
		||||
          connector: connectorName,
 | 
			
		||||
          method: "deposit",
 | 
			
		||||
          args: [ethAddress, DAI_ADDR, ethAmount, daiUnitAmount, "500000000000000000", getId, setId]
 | 
			
		||||
        }
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
          const spells = [
 | 
			
		||||
              {
 | 
			
		||||
                  connector: connectorName,
 | 
			
		||||
                  method: "deposit",
 | 
			
		||||
                  args: [
 | 
			
		||||
                      ethAddress,
 | 
			
		||||
                      DAI_ADDR,
 | 
			
		||||
                      ethAmount,
 | 
			
		||||
                      daiUnitAmount,
 | 
			
		||||
                      "500000000000000000",
 | 
			
		||||
                      getId,
 | 
			
		||||
                      setId
 | 
			
		||||
                  ],
 | 
			
		||||
              }
 | 
			
		||||
          ]
 | 
			
		||||
      const tx = await dsaWallet0.connect(wallet0).cast(...encodeSpells(spells), wallet1.address);
 | 
			
		||||
      let receipt = await tx.wait();
 | 
			
		||||
    }).timeout(10000000000);
 | 
			
		||||
 | 
			
		||||
          const tx = await dsaWallet0.connect(wallet0).cast(...encodeSpells(spells), wallet1.address)
 | 
			
		||||
          let receipt = await tx.wait()
 | 
			
		||||
      }).timeout(10000000000);
 | 
			
		||||
    it("Should withdraw successfully", async function () {
 | 
			
		||||
      const ethAmount = ethers.utils.parseEther("0.1"); // 1 ETH
 | 
			
		||||
      const ethAddress = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
 | 
			
		||||
 | 
			
		||||
      it("Should withdraw successfully", async function () {
 | 
			
		||||
          const ethAmount = ethers.utils.parseEther("0.1") // 1 ETH
 | 
			
		||||
          const ethAddress = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
 | 
			
		||||
      const getId = "0";
 | 
			
		||||
      const setIds = ["0", "0"];
 | 
			
		||||
 | 
			
		||||
          const getId = "0"
 | 
			
		||||
          const setIds = ["0", "0"]
 | 
			
		||||
      const spells = [
 | 
			
		||||
        {
 | 
			
		||||
          connector: connectorName,
 | 
			
		||||
          method: "withdraw",
 | 
			
		||||
          args: [ethAddress, DAI_ADDR, ethAmount, 0, 0, getId, setIds]
 | 
			
		||||
        }
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
          const spells = [
 | 
			
		||||
              {
 | 
			
		||||
                  connector: connectorName,
 | 
			
		||||
                  method: "withdraw",
 | 
			
		||||
                  args: [
 | 
			
		||||
                      ethAddress,
 | 
			
		||||
                      DAI_ADDR,
 | 
			
		||||
                      ethAmount,
 | 
			
		||||
                      0,
 | 
			
		||||
                      0,
 | 
			
		||||
                      getId,
 | 
			
		||||
                      setIds
 | 
			
		||||
                  ]
 | 
			
		||||
              }
 | 
			
		||||
          ]
 | 
			
		||||
      const tx = await dsaWallet0.connect(wallet0).cast(...encodeSpells(spells), wallet1.address);
 | 
			
		||||
      let receipt = await tx.wait();
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
          const tx = await dsaWallet0.connect(wallet0).cast(...encodeSpells(spells), wallet1.address)
 | 
			
		||||
          let receipt = await tx.wait()
 | 
			
		||||
      });
 | 
			
		||||
    it("Should buy successfully", async function () {
 | 
			
		||||
      const ethAmount = ethers.utils.parseEther("0.1"); // 1 ETH
 | 
			
		||||
      const daiUnitAmount = ethers.utils.parseEther("4000"); // 1 ETH
 | 
			
		||||
      const ethAddress = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
 | 
			
		||||
 | 
			
		||||
      it("Should buy successfully", async function () {
 | 
			
		||||
          const ethAmount = ethers.utils.parseEther("0.1") // 1 ETH
 | 
			
		||||
          const daiUnitAmount = ethers.utils.parseEther("4000") // 1 ETH
 | 
			
		||||
          const ethAddress = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
 | 
			
		||||
      const getId = "0";
 | 
			
		||||
      const setId = "0";
 | 
			
		||||
 | 
			
		||||
          const getId = "0"
 | 
			
		||||
          const setId = "0"
 | 
			
		||||
      const spells = [
 | 
			
		||||
        {
 | 
			
		||||
          connector: connectorName,
 | 
			
		||||
          method: "buy",
 | 
			
		||||
          args: [ethAddress, DAI_ADDR, ethAmount, daiUnitAmount, getId, setId]
 | 
			
		||||
        }
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
          const spells = [
 | 
			
		||||
              {
 | 
			
		||||
                  connector: connectorName,
 | 
			
		||||
                  method: "buy",
 | 
			
		||||
                  args: [
 | 
			
		||||
                      ethAddress,
 | 
			
		||||
                      DAI_ADDR,
 | 
			
		||||
                      ethAmount,
 | 
			
		||||
                      daiUnitAmount,
 | 
			
		||||
                      getId,
 | 
			
		||||
                      setId
 | 
			
		||||
                  ]
 | 
			
		||||
              }
 | 
			
		||||
          ]
 | 
			
		||||
 | 
			
		||||
          const tx = await dsaWallet0.connect(wallet0).cast(...encodeSpells(spells), wallet1.address)
 | 
			
		||||
          let receipt = await tx.wait()
 | 
			
		||||
      });
 | 
			
		||||
      const tx = await dsaWallet0.connect(wallet0).cast(...encodeSpells(spells), wallet1.address);
 | 
			
		||||
      let receipt = await tx.wait();
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
}) 
 | 
			
		||||
 | 
			
		||||
// describe("Sushiswap", function() {
 | 
			
		||||
//   const connectorName = "Sushiswap-v1.1";
 | 
			
		||||
 | 
			
		||||
//   let dsaWallet0: Contract;
 | 
			
		||||
//   let masterSigner: Signer;
 | 
			
		||||
//   let instaConnectorsV2: Contract;
 | 
			
		||||
//   let connector: Contract;
 | 
			
		||||
 | 
			
		||||
//   const wallets = provider.getWallets();
 | 
			
		||||
//   const [wallet0, wallet1, wallet2, wallet3] = wallets;
 | 
			
		||||
//   before(async () => {
 | 
			
		||||
//     await hre.network.provider.request({
 | 
			
		||||
//         method: "hardhat_reset",
 | 
			
		||||
//         params: [
 | 
			
		||||
//             {
 | 
			
		||||
//                 forking: {
 | 
			
		||||
//                     // @ts-ignore
 | 
			
		||||
//                     jsonRpcUrl: hre.config.networks.hardhat.forking.url,
 | 
			
		||||
//                     blockNumber: 13005785,
 | 
			
		||||
//                 },
 | 
			
		||||
//             },
 | 
			
		||||
//         ],
 | 
			
		||||
//     });
 | 
			
		||||
 | 
			
		||||
//     masterSigner = await getMasterSigner();
 | 
			
		||||
//     instaConnectorsV2 = await ethers.getContractAt(
 | 
			
		||||
//       abis.core.connectorsV2,
 | 
			
		||||
//       addresses.core.connectorsV2
 | 
			
		||||
//     );
 | 
			
		||||
//     connector = await deployAndEnableConnector({
 | 
			
		||||
//       connectorName,
 | 
			
		||||
//       contractArtifact: ConnectV2Sushiswap__factory,
 | 
			
		||||
//       signer: masterSigner,
 | 
			
		||||
//       connectors: instaConnectorsV2,
 | 
			
		||||
//     });
 | 
			
		||||
//     console.log("Connector address", connector.address);
 | 
			
		||||
//   });
 | 
			
		||||
 | 
			
		||||
//   it("Should have contracts deployed.", async function() {
 | 
			
		||||
//     expect(!!instaConnectorsV2.address).to.be.true;
 | 
			
		||||
//     expect(!!connector.address).to.be.true;
 | 
			
		||||
//     expect(!!(await masterSigner.getAddress())).to.be.true;
 | 
			
		||||
//   });
 | 
			
		||||
 | 
			
		||||
//   describe("DSA wallet setup", function() {
 | 
			
		||||
//     it("Should build DSA v2", async function() {
 | 
			
		||||
//       dsaWallet0 = await buildDSAv2(wallet0.address);
 | 
			
		||||
//       expect(!!dsaWallet0.address).to.be.true;
 | 
			
		||||
//     });
 | 
			
		||||
 | 
			
		||||
//     it("Deposit ETH & DAI into DSA wallet", async function() {
 | 
			
		||||
//       await wallet0.sendTransaction({
 | 
			
		||||
//         to: dsaWallet0.address,
 | 
			
		||||
//         value: ethers.utils.parseEther("10"),
 | 
			
		||||
//       });
 | 
			
		||||
//       expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.gte(
 | 
			
		||||
//         ethers.utils.parseEther("10")
 | 
			
		||||
//       );
 | 
			
		||||
 | 
			
		||||
//       await addLiquidity(
 | 
			
		||||
//         "dai",
 | 
			
		||||
//         dsaWallet0.address,
 | 
			
		||||
//         ethers.utils.parseEther("100000")
 | 
			
		||||
//       );
 | 
			
		||||
//     });
 | 
			
		||||
 | 
			
		||||
//     it("Deposit ETH & USDT into DSA wallet", async function() {
 | 
			
		||||
//       await wallet0.sendTransaction({
 | 
			
		||||
//         to: dsaWallet0.address,
 | 
			
		||||
//         value: ethers.utils.parseEther("10"),
 | 
			
		||||
//       });
 | 
			
		||||
//       expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.gte(
 | 
			
		||||
//         ethers.utils.parseEther("10")
 | 
			
		||||
//       );
 | 
			
		||||
 | 
			
		||||
//       await addLiquidity(
 | 
			
		||||
//         "usdt",
 | 
			
		||||
//         dsaWallet0.address,
 | 
			
		||||
//         ethers.utils.parseEther("100000")
 | 
			
		||||
//       );
 | 
			
		||||
//     });
 | 
			
		||||
//   });
 | 
			
		||||
 | 
			
		||||
//   describe("Main", function() {
 | 
			
		||||
//     it("Should deposit successfully", async function() {
 | 
			
		||||
//       const ethAmount = ethers.utils.parseEther("1000"); // 1 ETH
 | 
			
		||||
//       const daiUnitAmount = ethers.utils.parseUnits("4", 18); // 1 ETH
 | 
			
		||||
//       const usdtAmount = Number(ethers.utils.parseEther("400")) / Math.pow(10, 12); // 1 ETH
 | 
			
		||||
//       const ethAddress = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
 | 
			
		||||
 | 
			
		||||
//       const getId = "0";
 | 
			
		||||
//       const setId = "0";
 | 
			
		||||
 | 
			
		||||
//       const spells = [
 | 
			
		||||
//         {
 | 
			
		||||
//           connector: connectorName,
 | 
			
		||||
//           method: "deposit",
 | 
			
		||||
//           args: [
 | 
			
		||||
//             ethAddress,
 | 
			
		||||
//             DAI_ADDR,
 | 
			
		||||
//             ethAmount,
 | 
			
		||||
//             daiUnitAmount,
 | 
			
		||||
//             "500000000000000000",
 | 
			
		||||
//             getId,
 | 
			
		||||
//             setId,
 | 
			
		||||
//           ],
 | 
			
		||||
//         },
 | 
			
		||||
//       ];
 | 
			
		||||
 | 
			
		||||
//       const tx = await dsaWallet0
 | 
			
		||||
//         .connect(wallet0)
 | 
			
		||||
//         .cast(...encodeSpells(spells), wallet1.address);
 | 
			
		||||
//       let receipt = await tx.wait();
 | 
			
		||||
//     }).timeout(10000000000);
 | 
			
		||||
 | 
			
		||||
//     it("Should withdraw successfully", async function() {
 | 
			
		||||
//       const ethAmount = ethers.utils.parseEther("0.1"); // 1 ETH
 | 
			
		||||
//       const ethAddress = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
 | 
			
		||||
 | 
			
		||||
//       const getId = "0";
 | 
			
		||||
//       const setIds = ["0", "0"];
 | 
			
		||||
 | 
			
		||||
//       const spells = [
 | 
			
		||||
//         {
 | 
			
		||||
//           connector: connectorName,
 | 
			
		||||
//           method: "withdraw",
 | 
			
		||||
//           args: [ethAddress, DAI_ADDR, ethAmount, 0, 0, getId, setIds],
 | 
			
		||||
//         },
 | 
			
		||||
//       ];
 | 
			
		||||
 | 
			
		||||
//       const tx = await dsaWallet0
 | 
			
		||||
//         .connect(wallet0)
 | 
			
		||||
//         .cast(...encodeSpells(spells), wallet1.address);
 | 
			
		||||
//       let receipt = await tx.wait();
 | 
			
		||||
//     });
 | 
			
		||||
 | 
			
		||||
//     it("Should buy successfully", async function() {
 | 
			
		||||
//       const ethAmount = ethers.utils.parseEther("0.1"); // 1 ETH
 | 
			
		||||
//       const daiUnitAmount = ethers.utils.parseEther("4000"); // 1 ETH
 | 
			
		||||
//       const ethAddress = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
 | 
			
		||||
 | 
			
		||||
//       const getId = "0";
 | 
			
		||||
//       const setId = "0";
 | 
			
		||||
 | 
			
		||||
//       const spells = [
 | 
			
		||||
//         {
 | 
			
		||||
//           connector: connectorName,
 | 
			
		||||
//           method: "buy",
 | 
			
		||||
//           args: [ethAddress, DAI_ADDR, ethAmount, daiUnitAmount, getId, setId],
 | 
			
		||||
//         },
 | 
			
		||||
//       ];
 | 
			
		||||
 | 
			
		||||
//       const tx = await dsaWallet0
 | 
			
		||||
//         .connect(wallet0)
 | 
			
		||||
//         .cast(...encodeSpells(spells), wallet1.address);
 | 
			
		||||
//       let receipt = await tx.wait();
 | 
			
		||||
//     });
 | 
			
		||||
//   });
 | 
			
		||||
// });
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user