mirror of
				https://github.com/Instadapp/dsa-connectors-2.0.git
				synced 2024-07-29 21:57:39 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			80 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers";
 | |
| import { ethers } from "hardhat";
 | |
| import { ConnectV2ArbitrumAirdrop, ConnectV2ArbitrumAirdrop__factory } from "../../../typechain";
 | |
| import hre from "hardhat";
 | |
| import { deployAndEnableConnector } from "../../../scripts/tests/deployAndEnableConnector";
 | |
| import { buildDSAv2 } from "../../../scripts/tests/buildDSAv2";
 | |
| import { encodeSpells } from "../../../scripts/tests/encodeSpells";
 | |
| import { getMasterSigner } from "../../../scripts/tests/getMasterSigner";
 | |
| import { addresses } from "../../../scripts/tests/arbitrum/addresses";
 | |
| import { abis } from "../../../scripts/constant/abis";
 | |
| 
 | |
| describe("Arbitrum Airdrop Claim Test", () => {
 | |
|   let signer: SignerWithAddress;
 | |
|   let signer_user: any;
 | |
|   const user = "0x30c3D961a21c2352A6FfAfFd4e8cB8730Bf82757";
 | |
|   const connectorName = "arbitrum-airdrop";
 | |
|   let dsaWallet0: any;
 | |
| 
 | |
|   before(async () => {
 | |
|     [signer] = await ethers.getSigners();
 | |
|   });
 | |
| 
 | |
|   describe("Arbitrum Airdrop Functions", () => {
 | |
|     let contract: ConnectV2ArbitrumAirdrop;
 | |
| 
 | |
|     before(async () => {
 | |
|       await hre.network.provider.request({
 | |
|         method: "hardhat_reset",
 | |
|         params: [
 | |
|           {
 | |
|             forking: {
 | |
|               //@ts-ignore
 | |
|               jsonRpcUrl: hre.config.networks.hardhat.forking.url,
 | |
|               blockNumber: 70606643,
 | |
|             },
 | |
|           },
 | |
|         ],
 | |
|       });
 | |
| 
 | |
|       const deployer = new ConnectV2ArbitrumAirdrop__factory(signer);
 | |
|       contract = await deployer.deploy();
 | |
|       await contract.deployed();
 | |
|       console.log("Contract deployed at: ", contract.address);
 | |
| 
 | |
|       await deployAndEnableConnector({
 | |
|         connectorName,
 | |
|         contractArtifact: ConnectV2ArbitrumAirdrop__factory,
 | |
|         signer: signer,
 | |
|         connectors: await ethers.getContractAt(abis.core.connectorsV2, addresses.core.connectorsV2),
 | |
|       });
 | |
| 
 | |
|       await hre.network.provider.request({
 | |
|         method: 'hardhat_impersonateAccount',
 | |
|         params: [user],
 | |
|       });
 | |
| 
 | |
|       signer_user = await ethers.getSigner(user);
 | |
|       dsaWallet0 = await buildDSAv2(user);
 | |
|     });
 | |
| 
 | |
|     it("Claims Arbitrum Airdrop and checks claimable tokens", async () => {
 | |
|       const claimableBefore = await contract.claimableArbTokens(user);
 | |
|       console.log("Claimable tokens before: ", claimableBefore.toString());
 | |
| 
 | |
|       const spells = [
 | |
|         {
 | |
|           connector: connectorName,
 | |
|           method: "claimAirdrop",
 | |
|           args: ["0"],
 | |
|         },
 | |
|       ];
 | |
| 
 | |
|       const tx = await dsaWallet0.connect(signer_user).cast(...encodeSpells(spells), user);
 | |
|       await tx.wait();
 | |
| 
 | |
|       const claimableAfter = await contract.claimableArbTokens(user);
 | |
|       console.log("Claimable tokens after: ", claimableAfter.toString());
 | |
|     });
 | |
|   });
 | |
| }); | 
