update script file

This commit is contained in:
q1q0 2023-04-23 09:51:09 -04:00
parent 7a19f3b8ee
commit 266d626224

View File

@ -21,7 +21,7 @@ describe("Compound III", async function () {
const connectorName = "COMPOUND-POLYGON-V3-TEST-A"; const connectorName = "COMPOUND-POLYGON-V3-TEST-A";
const market = "0xF25212E676D1F7F89Cd72fFEe66158f541246445"; const market = "0xF25212E676D1F7F89Cd72fFEe66158f541246445";
const base = "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174"; const base = "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174";
const account = "0xf827c3E5fD68e78aa092245D442398E12988901C"; const account = "0xF25212E676D1F7F89Cd72fFEe66158f541246445";
const wethWhale = "0x06959153B974D0D5fDfd87D561db6d8d4FA0bb0B"; const wethWhale = "0x06959153B974D0D5fDfd87D561db6d8d4FA0bb0B";
const ABI = [ const ABI = [
@ -29,7 +29,7 @@ describe("Compound III", async function () {
"function approve(address spender, uint256 amount) external returns(bool)", "function approve(address spender, uint256 amount) external returns(bool)",
"function transfer(address recipient, uint256 amount) external returns (bool)" "function transfer(address recipient, uint256 amount) external returns (bool)"
]; ];
let wethContract: any; let wmaticContract: any;
let baseContract: any; let baseContract: any;
const cometABI = [ const cometABI = [
@ -162,7 +162,7 @@ describe("Compound III", async function () {
forking: { forking: {
//@ts-ignore //@ts-ignore
jsonRpcUrl: hre.config.networks.hardhat.forking.url, jsonRpcUrl: hre.config.networks.hardhat.forking.url,
// blockNumber: 27054896 // blockNumber: 41860206
} }
} }
] ]
@ -199,7 +199,7 @@ describe("Compound III", async function () {
}); });
wethSigner = await ethers.getSigner(wethWhale); wethSigner = await ethers.getSigner(wethWhale);
baseContract = new ethers.Contract(base, ABI, wethSigner) baseContract = new ethers.Contract(base, ABI, wethSigner)
wethContract = new ethers.Contract(tokens.wmatic.address, ABI, wethSigner) wmaticContract = new ethers.Contract(tokens.wmatic.address, ABI, wethSigner)
comet = new ethers.Contract(market, cometABI, wethSigner) comet = new ethers.Contract(market, cometABI, wethSigner)
}); });
@ -220,14 +220,10 @@ describe("Compound III", async function () {
expect(!!dsaWallet3.address).to.be.true; expect(!!dsaWallet3.address).to.be.true;
wallet = await ethers.getSigner(dsaWallet0.address); wallet = await ethers.getSigner(dsaWallet0.address);
expect(!!dsaWallet1.address).to.be.true; expect(!!dsaWallet1.address).to.be.true;
const bal = await baseContract.balanceOf(wethWhale)
await baseContract.connect(wethSigner).transfer(dsaWallet0.address, ethers.utils.parseUnits("1000", 6));
await baseContract.connect(wethSigner).transfer(dsaWallet1.address, ethers.utils.parseUnits("1000", 6));
}); });
describe("DSA wallet setup", function () { describe("DSA wallet setup", function () {
it("Deposit ETH into DSA wallet", async function () { it("Deposit Matic into DSA wallet", async function () {
await hre.network.provider.request({ await hre.network.provider.request({
method: "hardhat_impersonateAccount", method: "hardhat_impersonateAccount",
params: [wallet.address] params: [wallet.address]
@ -236,26 +232,26 @@ describe("Compound III", async function () {
dsa0Signer = await ethers.getSigner(wallet.address); dsa0Signer = await ethers.getSigner(wallet.address);
await wallet0.sendTransaction({ await wallet0.sendTransaction({
to: dsaWallet0.address, to: dsaWallet0.address,
value: ethers.utils.parseEther("10") value: ethers.utils.parseEther("1000")
}); });
expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.gte(ethers.utils.parseEther("10")); expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.gte(ethers.utils.parseEther("1000"));
await wallet0.sendTransaction({ await wallet0.sendTransaction({
to: dsaWallet1.address, to: dsaWallet1.address,
value: ethers.utils.parseEther("10") value: ethers.utils.parseEther("1000")
}); });
expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.gte(ethers.utils.parseEther("10")); expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.gte(ethers.utils.parseEther("1000"));
await wallet0.sendTransaction({ await wallet0.sendTransaction({
to: dsaWallet3.address, to: dsaWallet3.address,
value: ethers.utils.parseEther("10") value: ethers.utils.parseEther("1000")
}); });
expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.gte(ethers.utils.parseEther("10")); expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.gte(ethers.utils.parseEther("1000"));
}); });
}); });
describe("Main", function () { describe("Main", function () {
//deposit asset //deposit asset
it("Should supply ETH collateral in Compound V3", async function () { it("Should supply Matic collateral in Compound V3", async function () {
const amount = ethers.utils.parseEther("5"); // 5 ETH const amount = ethers.utils.parseEther("500"); // 5 Matic
const spells = [ const spells = [
{ {
connector: connectorName, connector: connectorName,
@ -266,15 +262,15 @@ describe("Compound III", async function () {
const tx = await dsaWallet0.connect(wallet0).cast(...encodeSpells(spells), wallet1.address); const tx = await dsaWallet0.connect(wallet0).cast(...encodeSpells(spells), wallet1.address);
const receipt = await tx.wait(); const receipt = await tx.wait();
expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.lte(ethers.utils.parseEther("5")); expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.lte(ethers.utils.parseEther("500"));
expect((await comet.connect(signer).userCollateral(dsaWallet0.address, tokens.wmatic.address)).balance).to.be.gte( expect((await comet.connect(signer).userCollateral(dsaWallet0.address, tokens.wmatic.address)).balance).to.be.gte(
ethers.utils.parseEther("5") ethers.utils.parseEther("500")
); );
}); });
//deposit asset on behalf of //deposit asset on behalf of
it("Should supply ETH collateral on behalf of dsaWallet0 in Compound V3", async function () { it("Should supply Matic collateral on behalf of dsaWallet0 in Compound V3", async function () {
const amount = ethers.utils.parseEther("1"); // 1 ETH const amount = ethers.utils.parseEther("100"); // 100 Matic
const spells = [ const spells = [
{ {
connector: connectorName, connector: connectorName,
@ -285,9 +281,9 @@ describe("Compound III", async function () {
const tx = await dsaWallet1.connect(wallet0).cast(...encodeSpells(spells), wallet1.address); const tx = await dsaWallet1.connect(wallet0).cast(...encodeSpells(spells), wallet1.address);
const receipt = await tx.wait(); const receipt = await tx.wait();
expect(await ethers.provider.getBalance(dsaWallet1.address)).to.be.lte(ethers.utils.parseEther("9")); expect(await ethers.provider.getBalance(dsaWallet1.address)).to.be.lte(ethers.utils.parseEther("900"));
expect((await comet.connect(wallet0).userCollateral(dsaWallet0.address, tokens.wmatic.address)).balance).to.be.gte( expect((await comet.connect(wallet0).userCollateral(dsaWallet0.address, tokens.wmatic.address)).balance).to.be.gte(
ethers.utils.parseEther("6") ethers.utils.parseEther("600")
); );
}); });
@ -383,9 +379,9 @@ describe("Compound III", async function () {
); );
}); });
it("should withdraw some ETH collateral", async function () { it("should withdraw some Matic collateral", async function () {
let initialBal = await ethers.provider.getBalance(dsaWallet0.address); let initialBal = await ethers.provider.getBalance(dsaWallet0.address);
const amount_ = ethers.utils.parseEther("2"); const amount_ = ethers.utils.parseEther("200");
const spells = [ const spells = [
{ {
connector: connectorName, connector: connectorName,
@ -397,7 +393,7 @@ describe("Compound III", async function () {
const tx = await dsaWallet0.connect(wallet0).cast(...encodeSpells(spells), wallet1.address); const tx = await dsaWallet0.connect(wallet0).cast(...encodeSpells(spells), wallet1.address);
const receipt = await tx.wait(); const receipt = await tx.wait();
expect((await comet.connect(signer).userCollateral(dsaWallet0.address, tokens.wmatic.address)).balance).to.be.gte( expect((await comet.connect(signer).userCollateral(dsaWallet0.address, tokens.wmatic.address)).balance).to.be.gte(
ethers.utils.parseEther("4") ethers.utils.parseEther("400")
); );
expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.gte(initialBal.add(amount_).toString()); expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.gte(initialBal.add(amount_).toString());
}); });
@ -405,7 +401,7 @@ describe("Compound III", async function () {
it("manager should be able to withdraw collateral from the position and transfer", async function () { it("manager should be able to withdraw collateral from the position and transfer", async function () {
await wallet1.sendTransaction({ await wallet1.sendTransaction({
to: tokens.wmatic.address, to: tokens.wmatic.address,
value: ethers.utils.parseEther("10") value: ethers.utils.parseEther("1000")
}); });
const amount = ethers.constants.MaxUint256; const amount = ethers.constants.MaxUint256;
const spells = [ const spells = [
@ -421,7 +417,7 @@ describe("Compound III", async function () {
expect((await comet.connect(signer).userCollateral(dsaWallet0.address, tokens.wmatic.address)).balance).to.be.gte( expect((await comet.connect(signer).userCollateral(dsaWallet0.address, tokens.wmatic.address)).balance).to.be.gte(
ethers.utils.parseEther("0") ethers.utils.parseEther("0")
); );
expect(await wethContract.connect(wallet0).balanceOf(dsaWallet1.address)).to.be.gte(ethers.utils.parseEther("4")); expect(await wmaticContract.connect(wallet0).balanceOf(dsaWallet1.address)).to.be.gte(ethers.utils.parseEther("400"));
}); });
it("Should withdraw collateral to another DSA", async function () { it("Should withdraw collateral to another DSA", async function () {
@ -429,14 +425,14 @@ describe("Compound III", async function () {
{ {
connector: connectorName, connector: connectorName,
method: "deposit", method: "deposit",
args: [market, tokens.matic.address, ethers.utils.parseEther("5"), 0, 0] args: [market, tokens.matic.address, ethers.utils.parseEther("500"), 0, 0]
} }
]; ];
const tx1 = await dsaWallet1.connect(wallet0).cast(...encodeSpells(spells1), wallet1.address); const tx1 = await dsaWallet1.connect(wallet0).cast(...encodeSpells(spells1), wallet1.address);
let initialBal = await ethers.provider.getBalance(dsaWallet0.address); let initialBal = await ethers.provider.getBalance(dsaWallet0.address);
const amount = ethers.utils.parseEther("2"); const amount = ethers.utils.parseEther("200");
const spells = [ const spells = [
{ {
connector: connectorName, connector: connectorName,
@ -447,10 +443,10 @@ describe("Compound III", async function () {
const tx = await dsaWallet1.connect(wallet0).cast(...encodeSpells(spells), wallet1.address); const tx = await dsaWallet1.connect(wallet0).cast(...encodeSpells(spells), wallet1.address);
const receipt = await tx.wait(); const receipt = await tx.wait();
expect(await wethContract.connect(wallet0).balanceOf(dsaWallet0.address)).to.be.gte(amount); expect(await wmaticContract.connect(wallet0).balanceOf(dsaWallet0.address)).to.be.gte(amount);
expect((await comet.connect(signer).userCollateral(dsaWallet1.address, tokens.wmatic.address)).balance).to.be.gte( expect((await comet.connect(signer).userCollateral(dsaWallet1.address, tokens.wmatic.address)).balance).to.be.gte(
ethers.utils.parseEther("3") ethers.utils.parseEther("300")
); );
}); });
@ -459,14 +455,14 @@ describe("Compound III", async function () {
{ {
connector: connectorName, connector: connectorName,
method: "deposit", method: "deposit",
args: [market, tokens.matic.address, ethers.utils.parseEther("3"), 0, 0] args: [market, tokens.matic.address, ethers.utils.parseEther("300"), 0, 0]
} }
]; ];
const tx1 = await dsaWallet0.connect(wallet0).cast(...encodeSpells(spells1), wallet1.address); const tx1 = await dsaWallet0.connect(wallet0).cast(...encodeSpells(spells1), wallet1.address);
let initialBal = await ethers.provider.getBalance(dsaWallet0.address); let initialBal = await ethers.provider.getBalance(dsaWallet0.address);
const amount = ethers.utils.parseEther("2"); const amount = ethers.utils.parseEther("200");
const spells = [ const spells = [
{ {
connector: connectorName, connector: connectorName,
@ -480,16 +476,16 @@ describe("Compound III", async function () {
expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.gte(initialBal.add(amount)); expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.gte(initialBal.add(amount));
expect((await comet.connect(signer).userCollateral(dsaWallet1.address, tokens.wmatic.address)).balance).to.be.gte( expect((await comet.connect(signer).userCollateral(dsaWallet1.address, tokens.wmatic.address)).balance).to.be.gte(
ethers.utils.parseEther("1") ethers.utils.parseEther("100")
); );
}); });
it("should transfer eth from dsaWallet1 to dsaWallet0 position", async function () { it("should transfer matic from dsaWallet1 to dsaWallet0 position", async function () {
const spells = [ const spells = [
{ {
connector: connectorName, connector: connectorName,
method: "transferAsset", method: "transferAsset",
args: [market, tokens.matic.address, dsaWallet0.address, ethers.utils.parseEther("3"), 0, 0] args: [market, tokens.matic.address, dsaWallet0.address, ethers.utils.parseEther("300"), 0, 0]
} }
]; ];
@ -499,12 +495,12 @@ describe("Compound III", async function () {
ethers.utils.parseEther("0") ethers.utils.parseEther("0")
); );
expect((await comet.connect(signer).userCollateral(dsaWallet0.address, tokens.wmatic.address)).balance).to.be.gte( expect((await comet.connect(signer).userCollateral(dsaWallet0.address, tokens.wmatic.address)).balance).to.be.gte(
ethers.utils.parseEther("3") ethers.utils.parseEther("300")
); );
}); });
it("should transfer base token from dsaWallet1 to dsaWallet0 position", async function () { it("should transfer base token from dsaWallet1 to dsaWallet0 position", async function () {
await baseContract.connect(wethSigner).transfer(dsaWallet1.address, ethers.utils.parseUnits("10", 6)); await baseContract.connect(wethSigner).transfer(dsaWallet1.address, ethers.utils.parseUnits("1000", 6));
const spells = [ const spells = [
{ {
@ -547,11 +543,11 @@ describe("Compound III", async function () {
}); });
it("should deposit weth using manager", async function () { it("should deposit weth using manager", async function () {
await wethContract.connect(wethSigner).transfer(dsaWallet0.address, ethers.utils.parseEther("10")); await wmaticContract.connect(signer).transfer(dsaWallet0.address, ethers.utils.parseEther("1000"));
let initialBal = await wethContract.connect(wallet0).balanceOf(dsaWallet0.address); let initialBal = await wmaticContract.connect(wallet0).balanceOf(dsaWallet0.address);
const amount = ethers.utils.parseEther("1"); const amount = ethers.utils.parseEther("100");
await wethContract.connect(dsa0Signer).approve(market, amount); await wmaticContract.connect(dsa0Signer).approve(market, amount);
const spells = [ const spells = [
{ {
@ -564,9 +560,9 @@ describe("Compound III", async function () {
const tx = await dsaWallet2.connect(wallet0).cast(...encodeSpells(spells), wallet1.address); const tx = await dsaWallet2.connect(wallet0).cast(...encodeSpells(spells), wallet1.address);
const receipt = await tx.wait(); const receipt = await tx.wait();
expect((await comet.connect(signer).userCollateral(dsaWallet1.address, tokens.wmatic.address)).balance).to.be.gte( expect((await comet.connect(signer).userCollateral(dsaWallet1.address, tokens.wmatic.address)).balance).to.be.gte(
ethers.utils.parseEther("1") ethers.utils.parseEther("100")
); );
expect(await wethContract.connect(wallet0).balanceOf(dsaWallet0.address)).to.be.lte(initialBal.sub(amount)); expect(await wmaticContract.connect(wallet0).balanceOf(dsaWallet0.address)).to.be.lte(initialBal.sub(amount));
}); });
it("should allow manager for dsaWallet0's collateral", async function () { it("should allow manager for dsaWallet0's collateral", async function () {
@ -585,13 +581,13 @@ describe("Compound III", async function () {
let initialBal = await baseContract.connect(wallet0).balanceOf(dsaWallet0.address); let initialBal = await baseContract.connect(wallet0).balanceOf(dsaWallet0.address);
await wallet0.sendTransaction({ await wallet0.sendTransaction({
to: dsaWallet3.address, to: dsaWallet3.address,
value: ethers.utils.parseEther("15") value: ethers.utils.parseEther("1500")
}); });
const spells1 = [ const spells1 = [
{ {
connector: connectorName, connector: connectorName,
method: "deposit", method: "deposit",
args: [market, tokens.matic.address, ethers.utils.parseEther("15"), 0, 0] args: [market, tokens.matic.address, ethers.utils.parseEther("1500"), 0, 0]
} }
]; ];
const tx1 = await dsaWallet3.connect(wallet0).cast(...encodeSpells(spells1), wallet1.address); const tx1 = await dsaWallet3.connect(wallet0).cast(...encodeSpells(spells1), wallet1.address);
@ -619,17 +615,17 @@ describe("Compound III", async function () {
{ {
connector: connectorName, connector: connectorName,
method: "transferAssetOnBehalf", method: "transferAssetOnBehalf",
args: [market, tokens.matic.address, dsaWallet0.address, dsaWallet1.address, ethers.utils.parseEther("1"), 0, 0] args: [market, tokens.matic.address, dsaWallet0.address, dsaWallet1.address, ethers.utils.parseEther("100"), 0, 0]
} }
]; ];
const tx = await dsaWallet2.connect(wallet0).cast(...encodeSpells(spells), wallet1.address); const tx = await dsaWallet2.connect(wallet0).cast(...encodeSpells(spells), wallet1.address);
const receipt = await tx.wait(); const receipt = await tx.wait();
expect((await comet.connect(signer).userCollateral(dsaWallet1.address, tokens.wmatic.address)).balance).to.be.gte( expect((await comet.connect(signer).userCollateral(dsaWallet1.address, tokens.wmatic.address)).balance).to.be.gte(
bal1.add(ethers.utils.parseEther("1")).toString() bal1.add(ethers.utils.parseEther("100")).toString()
); );
expect((await comet.connect(signer).userCollateral(dsaWallet0.address, tokens.wmatic.address)).balance).to.be.gte( expect((await comet.connect(signer).userCollateral(dsaWallet0.address, tokens.wmatic.address)).balance).to.be.gte(
bal0.sub(ethers.utils.parseEther("1")).toString() bal0.sub(ethers.utils.parseEther("100")).toString()
); );
}); });
@ -655,7 +651,7 @@ describe("Compound III", async function () {
// const tx = await dsaWallet0.connect(wallet0).cast(...encodeSpells(spells), wallet1.address); // const tx = await dsaWallet0.connect(wallet0).cast(...encodeSpells(spells), wallet1.address);
// const receipt = await tx.wait(); // const receipt = await tx.wait();
// expect(new BigNumber(await linkContract.connect(signer).balanceOf(dsaWallet0.address)).toFixed()).to.be.gte( // expect(new BigNumber(await linkContract.connect(signer).balanceOf(dsaWallet0.address)).toFixed()).to.be.gte(
// ethers.utils.parseEther("1") // ethers.utils.parseEther("100")
// ); // );
// //dsawallet0 --> collateral 0eth, balance 9eth >1link // //dsawallet0 --> collateral 0eth, balance 9eth >1link