117 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| // import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers";
 | |
| // import { expect } from "chai";
 | |
| // import { ethers } from "hardhat";
 | |
| 
 | |
| // import { MockToken, P2PIX } from "../src/types";
 | |
| 
 | |
| // describe("P2PIX deposit test", () => {
 | |
| //   let owner: SignerWithAddress;
 | |
| //   let wallet2: SignerWithAddress;
 | |
| //   // let wallet3: SignerWithAddress;
 | |
| //   // let wallet4: SignerWithAddress;
 | |
| //   let p2pix: P2PIX; // Contract instance
 | |
| //   let erc20: MockToken; // Token instance
 | |
| 
 | |
| //   it("Will deploy contracts", async () => {
 | |
| //     [owner, wallet2 /* wallet3, wallet4 */] =
 | |
| //       await ethers.getSigners();
 | |
| 
 | |
| //     const ERC20Factory = await ethers.getContractFactory(
 | |
| //       "MockToken",
 | |
| //     );
 | |
| //     erc20 = await ERC20Factory.deploy(
 | |
| //       ethers.utils.parseEther("20000000"),
 | |
| //     );
 | |
| //     await erc20.deployed();
 | |
| 
 | |
| //     // Check initial balance
 | |
| //     expect(await erc20.balanceOf(owner.address)).to.equal(
 | |
| //       ethers.utils.parseEther("20000000"),
 | |
| //     );
 | |
| 
 | |
| //     const P2PIX = await ethers.getContractFactory("P2PIX");
 | |
| //     p2pix = await P2PIX.deploy(2, [
 | |
| //       owner.address,
 | |
| //       wallet2.address,
 | |
| //     ]);
 | |
| //     await p2pix.deployed();
 | |
| 
 | |
| //     const ownerKey = await p2pix._castAddrToKey(owner.address);
 | |
| //     const wallet2Key = await p2pix._castAddrToKey(wallet2.address);
 | |
| 
 | |
| //     // Verify values at deployment
 | |
| //     expect(
 | |
| //       await p2pix.callStatic.validBacenSigners(ownerKey),
 | |
| //     ).to.equal(true);
 | |
| //     expect(
 | |
| //       await p2pix.validBacenSigners(wallet2Key),
 | |
| //     ).to.equal(true);
 | |
| //   });
 | |
| 
 | |
| //   it("Should allow create a deposit", async () => {
 | |
| //     let transaction = await erc20.approve(
 | |
| //       p2pix.address,
 | |
| //       ethers.utils.parseEther("2000"),
 | |
| //     );
 | |
| //     await expect(transaction)
 | |
| //       .to.emit(erc20, "Approval")
 | |
| //       .withArgs(
 | |
| //         owner.address,
 | |
| //         p2pix.address,
 | |
| //         ethers.utils.parseEther("2000"),
 | |
| //       );
 | |
| 
 | |
| //     transaction = await p2pix.deposit(
 | |
| //       erc20.address,
 | |
| //       ethers.utils.parseEther("1000"),
 | |
| //       "SELLER PIX KEY",
 | |
| //       // { value: ethers.utils.parseEther("0.1") },
 | |
| //     );
 | |
| //     await expect(transaction)
 | |
| //       .to.emit(p2pix, "DepositAdded")
 | |
| //       .withArgs(
 | |
| //         owner.address,
 | |
| //         0,
 | |
| //         erc20.address,
 | |
| //         // ethers.utils.parseEther("0.1"),
 | |
| //         ethers.utils.parseEther("1000"),
 | |
| //       );
 | |
| //   });
 | |
| 
 | |
| //   it("Should allow create second deposit", async () => {
 | |
| //     const transaction = await p2pix.deposit(
 | |
| //       erc20.address,
 | |
| //       ethers.utils.parseEther("1000"),
 | |
| //       "SELLER PIX KEY",
 | |
| //       // { value: ethers.utils.parseEther("0.1") },
 | |
| //     );
 | |
| //     await expect(transaction)
 | |
| //       .to.emit(p2pix, "DepositAdded")
 | |
| //       .withArgs(
 | |
| //         owner.address,
 | |
| //         1,
 | |
| //         erc20.address,
 | |
| //         // ethers.utils.parseEther("0.1"),
 | |
| //         ethers.utils.parseEther("1000"),
 | |
| //       );
 | |
| //   });
 | |
| 
 | |
| //   it("Should allow cancel first deposit", async () => {
 | |
| //     const transaction = await p2pix.cancelDeposit(0);
 | |
| //     await expect(transaction)
 | |
| //       .to.emit(p2pix, "DepositClosed")
 | |
| //       .withArgs(owner.address, 0);
 | |
| //   });
 | |
| 
 | |
| //   it("Should allow withdraw the deposit", async () => {
 | |
| //     const transaction = await p2pix.withdraw(0, []);
 | |
| //     await expect(transaction)
 | |
| //       .to.emit(p2pix, "DepositWithdrawn")
 | |
| //       .withArgs(
 | |
| //         owner.address,
 | |
| //         0,
 | |
| //         ethers.utils.parseEther("1000"),
 | |
| //       );
 | |
| //   });
 | |
| // });
 |