// 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"), // ); // }); // });