Skip to content

Commit

Permalink
extend withdraw minamounts 2->4
Browse files Browse the repository at this point in the history
  • Loading branch information
tester test committed Mar 28, 2022
1 parent 180b88a commit 9a7a3dd
Show file tree
Hide file tree
Showing 8 changed files with 45 additions and 57 deletions.
11 changes: 5 additions & 6 deletions contracts/Hypervisor.sol
Expand Up @@ -228,8 +228,7 @@ contract Hypervisor is IUniswapV3MintCallback, ERC20Permit, ReentrancyGuard {
uint256 shares,
address to,
address from,
uint256 amount0Min,
uint256 amount1Min
uint256[4] memory minAmounts
) nonReentrant external returns (uint256 amount0, uint256 amount1) {
require(shares > 0, "shares");
require(to != address(0), "to");
Expand All @@ -244,17 +243,17 @@ contract Hypervisor is IUniswapV3MintCallback, ERC20Permit, ReentrancyGuard {
_baseLiquidityForShares(shares),
to,
false,
amount0Min,
amount1Min
minAmounts[0],
minAmounts[1]
);
(uint256 limit0, uint256 limit1) = _burnLiquidity(
limitLower,
limitUpper,
_limitLiquidityForShares(shares),
to,
false,
amount0Min,
amount1Min
minAmounts[2],
minAmounts[3]
);

// Push tokens proportional to unused balances
Expand Down
3 changes: 1 addition & 2 deletions contracts/interfaces/IHypervisor.sol
Expand Up @@ -19,8 +19,7 @@ interface IHypervisor {
uint256,
address,
address,
uint256,
uint256
uint256[4] memory
) external returns (uint256, uint256);

function rebalance(
Expand Down
16 changes: 8 additions & 8 deletions test/deposit_withdraw.test.ts
Expand Up @@ -308,11 +308,11 @@ describe('Hypervisor', () => {
const user3_liq_balance = await hypervisor.balanceOf(user3.address)
const user4_liq_balance = await hypervisor.balanceOf(user4.address)

await hypervisor.connect(user0).withdraw(user0_liq_balance, user0.address, user0.address, 0, 0)
await hypervisor.connect(user1).withdraw(user1_liq_balance, user1.address, user1.address, 0, 0)
await hypervisor.connect(user2).withdraw(user2_liq_balance, user2.address, user2.address, 0, 0)
await hypervisor.connect(user3).withdraw(user3_liq_balance, user3.address, user3.address, 0, 0)
await hypervisor.connect(user4).withdraw(user4_liq_balance, user4.address, user4.address, 0, 0)
await hypervisor.connect(user0).withdraw(user0_liq_balance, user0.address, user0.address, [0,0,0,0])
await hypervisor.connect(user1).withdraw(user1_liq_balance, user1.address, user1.address, [0,0,0,0])
await hypervisor.connect(user2).withdraw(user2_liq_balance, user2.address, user2.address, [0,0,0,0])
await hypervisor.connect(user3).withdraw(user3_liq_balance, user3.address, user3.address, [0,0,0,0])
await hypervisor.connect(user4).withdraw(user4_liq_balance, user4.address, user4.address, [0,0,0,0])

user0token0Amount = await token0.balanceOf(user0.address)
user0token1Amount = await token1.balanceOf(user0.address)
Expand Down Expand Up @@ -354,7 +354,7 @@ describe('Hypervisor', () => {
await hypervisor.connect(alice).deposit(ethers.utils.parseEther('1000'), ethers.utils.parseEther('1000'), alice.address, alice.address, [0,0,0,0])
alice_liq_balance = await hypervisor.balanceOf(alice.address)
expect(alice_liq_balance).to.equal(ethers.utils.parseEther('2000'))
await hypervisor.connect(alice).withdraw(alice_liq_balance, alice.address, alice.address, 0, 0)
await hypervisor.connect(alice).withdraw(alice_liq_balance, alice.address, alice.address, [0,0,0,0])
let tokenAmounts = await hypervisor.getTotalAmounts()
// verify that all liquidity has been removed from the pool
expect(tokenAmounts[0]).to.equal(0)
Expand Down Expand Up @@ -386,7 +386,7 @@ describe('Hypervisor', () => {
expect(tokenAmounts[0]).to.be.lt(ethers.utils.parseEther('2001'))
expect(tokenAmounts[1]).to.be.lt(ethers.utils.parseEther('2001'))

await hypervisor.connect(user0).withdraw(user0_liq_balance, user0.address, user0.address, 0, 0)
await hypervisor.connect(user0).withdraw(user0_liq_balance, user0.address, user0.address, [0,0,0,0])
token0Balance = await token0.balanceOf(user0.address)
token1Balance = await token1.balanceOf(user0.address)
expect(token0Balance).to.equal(ethers.utils.parseEther('1000'))
Expand Down Expand Up @@ -424,7 +424,7 @@ describe('Hypervisor', () => {
expect(limitPosition[0]).to.equal(0)

// withdraw alice's all liq balance
await hypervisor.connect(alice).withdraw(alice_liq_balance, alice.address, alice.address, 0, 0)
await hypervisor.connect(alice).withdraw(alice_liq_balance, alice.address, alice.address,[0,0,0,0])
alice_liq_balance = await hypervisor.balanceOf(alice.address)

// expect alice liq balance to be 0
Expand Down
24 changes: 12 additions & 12 deletions typechain/Hypervisor.d.ts
Expand Up @@ -66,7 +66,7 @@ interface HypervisorInterface extends ethers.utils.Interface {
"transferOwnership(address)": FunctionFragment;
"uniswapV3MintCallback(uint256,uint256,bytes)": FunctionFragment;
"whitelistedAddress()": FunctionFragment;
"withdraw(uint256,address,address,uint256,uint256)": FunctionFragment;
"withdraw(uint256,address,address,uint256[4])": FunctionFragment;
};

encodeFunctionData(
Expand Down Expand Up @@ -234,7 +234,12 @@ interface HypervisorInterface extends ethers.utils.Interface {
): string;
encodeFunctionData(
functionFragment: "withdraw",
values: [BigNumberish, string, string, BigNumberish, BigNumberish]
values: [
BigNumberish,
string,
string,
[BigNumberish, BigNumberish, BigNumberish, BigNumberish]
]
): string;

decodeFunctionResult(
Expand Down Expand Up @@ -652,8 +657,7 @@ export class Hypervisor extends BaseContract {
shares: BigNumberish,
to: string,
from: string,
amount0Min: BigNumberish,
amount1Min: BigNumberish,
minAmounts: [BigNumberish, BigNumberish, BigNumberish, BigNumberish],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
};
Expand Down Expand Up @@ -851,8 +855,7 @@ export class Hypervisor extends BaseContract {
shares: BigNumberish,
to: string,
from: string,
amount0Min: BigNumberish,
amount1Min: BigNumberish,
minAmounts: [BigNumberish, BigNumberish, BigNumberish, BigNumberish],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;

Expand Down Expand Up @@ -1066,8 +1069,7 @@ export class Hypervisor extends BaseContract {
shares: BigNumberish,
to: string,
from: string,
amount0Min: BigNumberish,
amount1Min: BigNumberish,
minAmounts: [BigNumberish, BigNumberish, BigNumberish, BigNumberish],
overrides?: CallOverrides
): Promise<
[BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber }
Expand Down Expand Up @@ -1394,8 +1396,7 @@ export class Hypervisor extends BaseContract {
shares: BigNumberish,
to: string,
from: string,
amount0Min: BigNumberish,
amount1Min: BigNumberish,
minAmounts: [BigNumberish, BigNumberish, BigNumberish, BigNumberish],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
};
Expand Down Expand Up @@ -1584,8 +1585,7 @@ export class Hypervisor extends BaseContract {
shares: BigNumberish,
to: string,
from: string,
amount0Min: BigNumberish,
amount1Min: BigNumberish,
minAmounts: [BigNumberish, BigNumberish, BigNumberish, BigNumberish],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
};
Expand Down
24 changes: 12 additions & 12 deletions typechain/IHypervisor.d.ts
Expand Up @@ -42,7 +42,7 @@ interface IHypervisorInterface extends ethers.utils.Interface {
"transfer(address,uint256)": FunctionFragment;
"transferFrom(address,address,uint256)": FunctionFragment;
"transferOwnership(address)": FunctionFragment;
"withdraw(uint256,address,address,uint256,uint256)": FunctionFragment;
"withdraw(uint256,address,address,uint256[4])": FunctionFragment;
};

encodeFunctionData(
Expand Down Expand Up @@ -133,7 +133,12 @@ interface IHypervisorInterface extends ethers.utils.Interface {
): string;
encodeFunctionData(
functionFragment: "withdraw",
values: [BigNumberish, string, string, BigNumberish, BigNumberish]
values: [
BigNumberish,
string,
string,
[BigNumberish, BigNumberish, BigNumberish, BigNumberish]
]
): string;

decodeFunctionResult(
Expand Down Expand Up @@ -347,8 +352,7 @@ export class IHypervisor extends BaseContract {
arg0: BigNumberish,
arg1: string,
arg2: string,
arg3: BigNumberish,
arg4: BigNumberish,
arg3: [BigNumberish, BigNumberish, BigNumberish, BigNumberish],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
};
Expand Down Expand Up @@ -454,8 +458,7 @@ export class IHypervisor extends BaseContract {
arg0: BigNumberish,
arg1: string,
arg2: string,
arg3: BigNumberish,
arg4: BigNumberish,
arg3: [BigNumberish, BigNumberish, BigNumberish, BigNumberish],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;

Expand Down Expand Up @@ -572,8 +575,7 @@ export class IHypervisor extends BaseContract {
arg0: BigNumberish,
arg1: string,
arg2: string,
arg3: BigNumberish,
arg4: BigNumberish,
arg3: [BigNumberish, BigNumberish, BigNumberish, BigNumberish],
overrides?: CallOverrides
): Promise<[BigNumber, BigNumber]>;
};
Expand Down Expand Up @@ -680,8 +682,7 @@ export class IHypervisor extends BaseContract {
arg0: BigNumberish,
arg1: string,
arg2: string,
arg3: BigNumberish,
arg4: BigNumberish,
arg3: [BigNumberish, BigNumberish, BigNumberish, BigNumberish],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
};
Expand Down Expand Up @@ -789,8 +790,7 @@ export class IHypervisor extends BaseContract {
arg0: BigNumberish,
arg1: string,
arg2: string,
arg3: BigNumberish,
arg4: BigNumberish,
arg3: [BigNumberish, BigNumberish, BigNumberish, BigNumberish],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
};
Expand Down
2 changes: 1 addition & 1 deletion typechain/factories/HypervisorFactory__factory.ts

Large diffs are not rendered by default.

13 changes: 4 additions & 9 deletions typechain/factories/Hypervisor__factory.ts

Large diffs are not rendered by default.

9 changes: 2 additions & 7 deletions typechain/factories/IHypervisor__factory.ts
Expand Up @@ -458,14 +458,9 @@ const _abi = [
type: "address",
},
{
internalType: "uint256",
name: "",
type: "uint256",
},
{
internalType: "uint256",
internalType: "uint256[4]",
name: "",
type: "uint256",
type: "uint256[4]",
},
],
name: "withdraw",
Expand Down

0 comments on commit 9a7a3dd

Please sign in to comment.