mirror of
https://github.com/Instadapp/dsa-connectors.git
synced 2024-07-29 22:37:00 +00:00
fixed tests
This commit is contained in:
parent
d48da206da
commit
be922547a9
|
@ -33,8 +33,7 @@ abstract contract Helpers is DSMath, Basic {
|
|||
}
|
||||
|
||||
/**
|
||||
*@dev helper function for three withdraw or borrow cases:
|
||||
*withdraw - for `withdraw` withdraws the collateral or base from DSA's position to account.
|
||||
*@dev helper function for following withdraw or borrow cases:
|
||||
*withdrawFrom - for `withdrawFromUsingManager` withdraws from src to dest using DSA as manager
|
||||
*withdrawTo - for `withdrawTo` withdraws from DSA to dest address.
|
||||
*/
|
||||
|
@ -45,9 +44,9 @@ abstract contract Helpers is DSMath, Basic {
|
|||
address to,
|
||||
uint256 amt
|
||||
) internal {
|
||||
if (from == address(0)) {
|
||||
if (from == address(this)) {
|
||||
CometInterface(market).withdrawTo(to, token, amt);
|
||||
} else if (from != address(0) && to != address(0)) {
|
||||
} else {
|
||||
CometInterface(market).withdrawFrom(from, to, token, amt);
|
||||
}
|
||||
}
|
||||
|
@ -72,8 +71,10 @@ abstract contract Helpers is DSMath, Basic {
|
|||
params.from
|
||||
);
|
||||
|
||||
uint256 balance = TokenInterface(params.market).balanceOf(params.from);
|
||||
require(balance == 0, "borrow-disabled-when-supplied-base");
|
||||
require(
|
||||
TokenInterface(params.market).balanceOf(params.from) == 0,
|
||||
"borrow-disabled-when-supplied-base"
|
||||
);
|
||||
|
||||
_withdrawHelper(params.market, token_, params.from, params.to, amt_);
|
||||
|
||||
|
@ -82,7 +83,7 @@ abstract contract Helpers is DSMath, Basic {
|
|||
);
|
||||
amt_ = sub(finalBal, initialBal);
|
||||
|
||||
if (params.from == address(0) || params.to == address(this))
|
||||
if (params.to == address(this))
|
||||
convertWethToEth(isEth, tokenContract, amt_);
|
||||
|
||||
setUint(params.setId, amt_);
|
||||
|
@ -133,7 +134,7 @@ abstract contract Helpers is DSMath, Basic {
|
|||
);
|
||||
amt_ = sub(initialBal, finalBal);
|
||||
|
||||
if (params.from == address(0) || params.to == address(this))
|
||||
if (params.to == address(this))
|
||||
convertWethToEth(isEth, tokenContract, amt_);
|
||||
|
||||
setUint(params.setId, amt_);
|
||||
|
|
|
@ -142,6 +142,7 @@ describe("Compound III", function () {
|
|||
let dsaWallet0: any;
|
||||
let dsaWallet1: any;
|
||||
let dsaWallet2: any;
|
||||
let dsaWallet3: any;
|
||||
let wallet: any;
|
||||
let dsa0Signer: any;
|
||||
let masterSigner: Signer;
|
||||
|
@ -208,6 +209,8 @@ describe("Compound III", function () {
|
|||
expect(!!dsaWallet1.address).to.be.true;
|
||||
dsaWallet2 = await buildDSAv2(wallet0.address);
|
||||
expect(!!dsaWallet2.address).to.be.true;
|
||||
dsaWallet3 = await buildDSAv2(wallet0.address);
|
||||
expect(!!dsaWallet3.address).to.be.true;
|
||||
wallet = await ethers.getSigner(dsaWallet0.address);
|
||||
expect(!!dsaWallet1.address).to.be.true;
|
||||
});
|
||||
|
@ -229,6 +232,11 @@ describe("Compound III", function () {
|
|||
value: ethers.utils.parseEther("10")
|
||||
});
|
||||
expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.gte(ethers.utils.parseEther("10"));
|
||||
await wallet0.sendTransaction({
|
||||
to: dsaWallet3.address,
|
||||
value: ethers.utils.parseEther("10")
|
||||
});
|
||||
expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.gte(ethers.utils.parseEther("10"));
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -496,7 +504,7 @@ describe("Compound III", function () {
|
|||
];
|
||||
const tx = await dsaWallet1.connect(wallet0).cast(...encodeSpells(spells), wallet1.address);
|
||||
const receipt = await tx.wait();
|
||||
let initialBal= (await baseContract.connect(signer).balanceOf(dsaWallet1.address));
|
||||
let initialBal = await baseContract.connect(signer).balanceOf(dsaWallet1.address);
|
||||
console.log(initialBal.toString());
|
||||
let spells1 = [
|
||||
{
|
||||
|
@ -520,7 +528,7 @@ describe("Compound III", function () {
|
|||
args: [market, base, dsaWallet0.address, dsaWallet1.address, ethers.constants.MaxUint256, 0, 0]
|
||||
}
|
||||
];
|
||||
let initialBal= (await baseContract.connect(signer).balanceOf(dsaWallet0.address));
|
||||
let initialBal = await baseContract.connect(signer).balanceOf(dsaWallet0.address);
|
||||
console.log(initialBal.toString());
|
||||
|
||||
const tx = await dsaWallet2.connect(wallet0).cast(...encodeSpells(spells), wallet1.address);
|
||||
|
@ -572,37 +580,47 @@ describe("Compound III", function () {
|
|||
);
|
||||
expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.lte(initialBal.sub(amount));
|
||||
});
|
||||
it("should allow manager for dsaWallet0's collateral", async function () {
|
||||
const spells = [
|
||||
{
|
||||
connector: connectorName,
|
||||
method: "toggleAccountManager",
|
||||
args: [market, dsaWallet2.address, true]
|
||||
}
|
||||
];
|
||||
|
||||
const tx = await dsaWallet3.connect(wallet0).cast(...encodeSpells(spells), wallet1.address);
|
||||
const receipt = await tx.wait();
|
||||
});
|
||||
it("should borrow using manager", async function () {
|
||||
let initialBal = await baseContract.connect(wallet0).balanceOf(dsaWallet0.address);
|
||||
await wallet0.sendTransaction({
|
||||
to: dsaWallet0.address,
|
||||
value: ethers.utils.parseEther("5")
|
||||
to: dsaWallet3.address,
|
||||
value: ethers.utils.parseEther("15")
|
||||
});
|
||||
const spells1 = [
|
||||
{
|
||||
connector: connectorName,
|
||||
method: "deposit",
|
||||
args: [market, tokens.eth.address, ethers.utils.parseEther("3"), 0, 0]
|
||||
args: [market, tokens.eth.address, ethers.utils.parseEther("15"), 0, 0]
|
||||
}
|
||||
];
|
||||
const tx1 = await dsaWallet0.connect(wallet0).cast(...encodeSpells(spells1), wallet1.address);
|
||||
const amount = ethers.utils.parseUnits("10", 6);
|
||||
const tx1 = await dsaWallet3.connect(wallet0).cast(...encodeSpells(spells1), wallet1.address);
|
||||
const amount = ethers.utils.parseUnits("500", 6);
|
||||
const spells = [
|
||||
{
|
||||
connector: connectorName,
|
||||
method: "borrowOnBehalf",
|
||||
args: [market, base, dsaWallet0.address, dsaWallet1.address, amount, 0, 0]
|
||||
args: [market, base, dsaWallet3.address, dsaWallet0.address, amount, 0, 0]
|
||||
}
|
||||
];
|
||||
|
||||
const tx = await dsaWallet2.connect(wallet0).cast(...encodeSpells(spells), wallet1.address);
|
||||
const receipt = await tx.wait();
|
||||
expect(new BigNumber(await comet.connect(signer).borrowBalanceOf(dsaWallet0.address)).toFixed()).to.be.equal(
|
||||
ethers.utils.parseUnits("10", 6)
|
||||
);
|
||||
expect(await baseContract.connect(wallet0).balanceOf(dsaWallet1.address)).to.be.equal(
|
||||
ethers.utils.parseUnits("10", 6)
|
||||
expect(new BigNumber(await comet.connect(signer).borrowBalanceOf(dsaWallet3.address)).toFixed()).to.be.equal(
|
||||
ethers.utils.parseUnits("500", 6)
|
||||
);
|
||||
expect(await baseContract.connect(wallet0).balanceOf(dsaWallet0.address)).to.be.equal(initialBal.add(amount));
|
||||
});
|
||||
|
||||
it("should transferAsset collateral using manager", async function () {
|
||||
|
|
Loading…
Reference in New Issue
Block a user