mirror of
				https://github.com/Instadapp/dsa-connectors.git
				synced 2024-07-29 22:37:00 +00:00 
			
		
		
		
	fix broken tests from instadapp PR
This commit is contained in:
		
							parent
							
								
									d45f08b743
								
							
						
					
					
						commit
						7ef923929c
					
				| 
						 | 
				
			
			@ -8,8 +8,8 @@ contract Events {
 | 
			
		|||
        uint maxFeePercentage,
 | 
			
		||||
        uint depositAmount,
 | 
			
		||||
        uint borrowAmount,
 | 
			
		||||
        uint[] getIds,
 | 
			
		||||
        uint[] setIds
 | 
			
		||||
        uint256[] getIds,
 | 
			
		||||
        uint256[] setIds
 | 
			
		||||
    );
 | 
			
		||||
    event LogClose(address indexed borrower, uint setId);
 | 
			
		||||
    event LogDeposit(address indexed borrower, uint amount, uint getId, uint setId);
 | 
			
		||||
| 
						 | 
				
			
			@ -23,8 +23,8 @@ contract Events {
 | 
			
		|||
        uint withdrawAmount,
 | 
			
		||||
        uint borrowAmount,
 | 
			
		||||
        uint repayAmount,
 | 
			
		||||
        uint[] getIds,
 | 
			
		||||
        uint[] setIds
 | 
			
		||||
        uint256[] getIds,
 | 
			
		||||
        uint256[] setIds
 | 
			
		||||
    );
 | 
			
		||||
    event LogClaimCollateralFromRedemption(address indexed borrower, uint amount, uint setId);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -52,7 +52,7 @@ contract Events {
 | 
			
		|||
    event LogStabilityMoveEthGainToTrove(address indexed borrower, uint amount);
 | 
			
		||||
 | 
			
		||||
    /* Staking */
 | 
			
		||||
    event LogStake(address indexed borrower, uint amount, uint setStakeId, uint getStakeId, uint setEthGainId, uint setLusdGainId);
 | 
			
		||||
    event LogStake(address indexed borrower, uint amount, uint getStakeId, uint setStakeId, uint setEthGainId, uint setLusdGainId);
 | 
			
		||||
    event LogUnstake(address indexed borrower, uint amount, uint getUnstakeId, uint setUnstakeId, uint setEthGainId, uint setLusdGainId);
 | 
			
		||||
    event LogClaimStakingGains(address indexed borrower, uint ethGain, uint lusdGain, uint setEthGainId, uint setLusdGainId);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,8 +38,8 @@ abstract contract LiquityResolver is Events, Helpers {
 | 
			
		|||
        uint borrowAmount,
 | 
			
		||||
        address upperHint,
 | 
			
		||||
        address lowerHint,
 | 
			
		||||
        uint[] getIds,
 | 
			
		||||
        uint[] setIds
 | 
			
		||||
        uint[] memory getIds,
 | 
			
		||||
        uint[] memory setIds
 | 
			
		||||
    ) external payable returns (string memory _eventName, bytes memory _eventParam) {
 | 
			
		||||
 | 
			
		||||
        depositAmount = getUint(getIds[0], depositAmount);
 | 
			
		||||
| 
						 | 
				
			
			@ -139,7 +139,8 @@ abstract contract LiquityResolver is Events, Helpers {
 | 
			
		|||
     * @param amount Amount of LUSD to borrow
 | 
			
		||||
     * @param upperHint Address of the Trove near the upper bound of where the user's Trove should now sit in the ordered Trove list
 | 
			
		||||
     * @param lowerHint Address of the Trove near the lower bound of where the user's Trove should now sit in the ordered Trove list
 | 
			
		||||
     * @param setId Optional storage slot to store the borrowed LUSD in
 | 
			
		||||
     * @param getId Optional storage slot to retrieve the amount of LUSD to borrow
 | 
			
		||||
     * @param setId Optional storage slot to store the final amount of LUSD borrowed
 | 
			
		||||
    */
 | 
			
		||||
    function borrow(
 | 
			
		||||
        uint maxFeePercentage,
 | 
			
		||||
| 
						 | 
				
			
			@ -165,7 +166,8 @@ abstract contract LiquityResolver is Events, Helpers {
 | 
			
		|||
     * @param amount Amount of LUSD to repay
 | 
			
		||||
     * @param upperHint Address of the Trove near the upper bound of where the user's Trove should now sit in the ordered Trove list
 | 
			
		||||
     * @param lowerHint Address of the Trove near the lower bound of where the user's Trove should now sit in the ordered Trove list
 | 
			
		||||
     * @param getId Optional storage slot to retrieve the LUSD from
 | 
			
		||||
     * @param getId Optional storage slot to retrieve the amount of LUSD from
 | 
			
		||||
     * @param setId Optional storage slot to store the final amount of LUSD repaid
 | 
			
		||||
    */
 | 
			
		||||
    function repay(
 | 
			
		||||
        uint amount,
 | 
			
		||||
| 
						 | 
				
			
			@ -211,8 +213,8 @@ abstract contract LiquityResolver is Events, Helpers {
 | 
			
		|||
        uint repayAmount,
 | 
			
		||||
        address upperHint,
 | 
			
		||||
        address lowerHint,
 | 
			
		||||
        uint[] getIds,
 | 
			
		||||
        uint[] setIds
 | 
			
		||||
        uint[] memory getIds,
 | 
			
		||||
        uint[] memory setIds
 | 
			
		||||
    ) external payable returns (string memory _eventName, bytes memory _eventParam) {
 | 
			
		||||
        AdjustTrove memory adjustTrove;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -276,7 +278,8 @@ abstract contract LiquityResolver is Events, Helpers {
 | 
			
		|||
     * @notice Deposit LUSD into Stability Pool
 | 
			
		||||
     * @param amount Amount of LUSD to deposit into Stability Pool
 | 
			
		||||
     * @param frontendTag Address of the frontend to make this deposit against (determines the kickback rate of rewards)
 | 
			
		||||
     * @param getDepositId Optional storage slot to retrieve the LUSD from
 | 
			
		||||
     * @param getDepositId Optional storage slot to retrieve the amount of LUSD from
 | 
			
		||||
     * @param setDepositId Optional storage slot to store the final amount of LUSD deposited
 | 
			
		||||
     * @param setEthGainId Optional storage slot to store any ETH gains in
 | 
			
		||||
     * @param setLqtyGainId Optional storage slot to store any LQTY gains in
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -312,6 +315,7 @@ abstract contract LiquityResolver is Events, Helpers {
 | 
			
		|||
     * @dev Withdraw user deposited LUSD from Stability Pool
 | 
			
		||||
     * @notice Withdraw LUSD from Stability Pool
 | 
			
		||||
     * @param amount Amount of LUSD to withdraw from Stability Pool
 | 
			
		||||
     * @param getWithdrawId Optional storage slot to retrieve the amount of LUSD to withdraw from
 | 
			
		||||
     * @param setWithdrawId Optional storage slot to store the withdrawn LUSD
 | 
			
		||||
     * @param setEthGainId Optional storage slot to store any ETH gains in
 | 
			
		||||
     * @param setLqtyGainId Optional storage slot to store any LQTY gains in
 | 
			
		||||
| 
						 | 
				
			
			@ -325,7 +329,7 @@ abstract contract LiquityResolver is Events, Helpers {
 | 
			
		|||
    ) external returns (string memory _eventName, bytes memory _eventParam) {
 | 
			
		||||
        amount = getUint(getWithdrawId, amount);
 | 
			
		||||
 | 
			
		||||
        amount = amount == uint(-1) ? StabilityPoolLike.getCompoundedLUSDDeposit(address(this)) : amount;
 | 
			
		||||
        amount = amount == uint(-1) ? stabilityPool.getCompoundedLUSDDeposit(address(this)) : amount;
 | 
			
		||||
 | 
			
		||||
        uint ethGain = stabilityPool.getDepositorETHGain(address(this));
 | 
			
		||||
        uint lqtyBalanceBefore = lqtyToken.balanceOf(address(this));
 | 
			
		||||
| 
						 | 
				
			
			@ -366,7 +370,8 @@ abstract contract LiquityResolver is Events, Helpers {
 | 
			
		|||
     * @dev Sends LQTY tokens from user to Staking Pool
 | 
			
		||||
     * @notice Stake LQTY in Staking Pool
 | 
			
		||||
     * @param amount Amount of LQTY to stake
 | 
			
		||||
     * @param getStakeId Optional storage slot to retrieve the LQTY from
 | 
			
		||||
     * @param getStakeId Optional storage slot to retrieve the amount of LQTY to stake
 | 
			
		||||
     * @param setStakeId Optional storage slot to store the final staked amount (can differ if requested with max balance: uint(-1))
 | 
			
		||||
     * @param setEthGainId Optional storage slot to store any ETH gains
 | 
			
		||||
     * @param setLusdGainId Optional storage slot to store any LUSD gains
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -396,7 +401,8 @@ abstract contract LiquityResolver is Events, Helpers {
 | 
			
		|||
     * @dev Sends LQTY tokens from Staking Pool to user
 | 
			
		||||
     * @notice Unstake LQTY in Staking Pool
 | 
			
		||||
     * @param amount Amount of LQTY to unstake
 | 
			
		||||
     * @param setStakeId Optional storage slot to store the unstaked LQTY
 | 
			
		||||
     * @param getUnstakeId Optional storage slot to retrieve the amount of LQTY to unstake
 | 
			
		||||
     * @param setUnstakeId Optional storage slot to store the unstaked LQTY
 | 
			
		||||
     * @param setEthGainId Optional storage slot to store any ETH gains
 | 
			
		||||
     * @param setLusdGainId Optional storage slot to store any LUSD gains
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -50,10 +50,11 @@ const openTroveSpell = async (
 | 
			
		|||
      borrowAmount,
 | 
			
		||||
      upperHint,
 | 
			
		||||
      lowerHint,
 | 
			
		||||
      0,
 | 
			
		||||
      0,
 | 
			
		||||
      [0, 0],
 | 
			
		||||
      [0, 0],
 | 
			
		||||
    ],
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  return await dsa
 | 
			
		||||
    .connect(signer)
 | 
			
		||||
    .cast(...encodeSpells([openTroveSpell]), address, {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -65,8 +65,8 @@ describe("Liquity", () => {
 | 
			
		|||
              borrowAmount,
 | 
			
		||||
              upperHint,
 | 
			
		||||
              lowerHint,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              [0, 0],
 | 
			
		||||
              [0, 0],
 | 
			
		||||
            ],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -144,8 +144,8 @@ describe("Liquity", () => {
 | 
			
		|||
              borrowAmount,
 | 
			
		||||
              upperHint,
 | 
			
		||||
              lowerHint,
 | 
			
		||||
              depositId,
 | 
			
		||||
              0,
 | 
			
		||||
              [depositId, 0],
 | 
			
		||||
              [0, 0],
 | 
			
		||||
            ],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -218,8 +218,8 @@ describe("Liquity", () => {
 | 
			
		|||
              borrowAmount,
 | 
			
		||||
              upperHint,
 | 
			
		||||
              lowerHint,
 | 
			
		||||
              0,
 | 
			
		||||
              borrowId,
 | 
			
		||||
              [0, 0],
 | 
			
		||||
              [borrowId, 0],
 | 
			
		||||
            ],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -297,8 +297,8 @@ describe("Liquity", () => {
 | 
			
		|||
              borrowAmount,
 | 
			
		||||
              upperHint,
 | 
			
		||||
              lowerHint,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              [0, 0],
 | 
			
		||||
              [0, 0],
 | 
			
		||||
            ],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -313,17 +313,24 @@ describe("Liquity", () => {
 | 
			
		|||
          const castLogEvent = receipt.events.find((e) => e.event === "LogCast")
 | 
			
		||||
            .args;
 | 
			
		||||
          expect(castLogEvent.eventNames[0]).eq(
 | 
			
		||||
            "LogOpen(address,uint256,uint256,uint256,uint256,uint256)"
 | 
			
		||||
            "LogOpen(address,uint256,uint256,uint256,uint256[],uint256[])"
 | 
			
		||||
          );
 | 
			
		||||
          const expectedEventParams = ethers.utils.defaultAbiCoder.encode(
 | 
			
		||||
            ["address", "uint256", "uint256", "uint256", "uint256", "uint256"],
 | 
			
		||||
            [
 | 
			
		||||
              userWallet.address,
 | 
			
		||||
              "address",
 | 
			
		||||
              "uint256",
 | 
			
		||||
              "uint256",
 | 
			
		||||
              "uint256",
 | 
			
		||||
              "uint256[]",
 | 
			
		||||
              "uint256[]",
 | 
			
		||||
            ],
 | 
			
		||||
            [
 | 
			
		||||
              dsa.address,
 | 
			
		||||
              maxFeePercentage,
 | 
			
		||||
              depositAmount,
 | 
			
		||||
              borrowAmount,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              [0, 0],
 | 
			
		||||
              [0, 0],
 | 
			
		||||
            ]
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventParams[0]).eq(expectedEventParams);
 | 
			
		||||
| 
						 | 
				
			
			@ -598,7 +605,7 @@ describe("Liquity", () => {
 | 
			
		|||
            .args;
 | 
			
		||||
          const expectedEventParams = ethers.utils.defaultAbiCoder.encode(
 | 
			
		||||
            ["address", "uint256"],
 | 
			
		||||
            [userWallet.address, 0]
 | 
			
		||||
            [dsa.address, 0]
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventNames[0]).eq("LogClose(address,uint256)");
 | 
			
		||||
          expect(castLogEvent.eventParams[0]).eq(expectedEventParams);
 | 
			
		||||
| 
						 | 
				
			
			@ -620,7 +627,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const depositEthSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "deposit",
 | 
			
		||||
            args: [topupAmount, upperHint, lowerHint, 0],
 | 
			
		||||
            args: [topupAmount, upperHint, lowerHint, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          await dsa
 | 
			
		||||
| 
						 | 
				
			
			@ -663,7 +670,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const depositEthToTroveSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "deposit",
 | 
			
		||||
            args: [0, upperHint, lowerHint, depositId],
 | 
			
		||||
            args: [0, upperHint, lowerHint, depositId, 0],
 | 
			
		||||
          };
 | 
			
		||||
          const spells = [depositEthSpell, depositEthToTroveSpell];
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -697,7 +704,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const depositEthSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "deposit",
 | 
			
		||||
            args: [topupAmount, upperHint, lowerHint, 0],
 | 
			
		||||
            args: [topupAmount, upperHint, lowerHint, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          const depositTx = await dsa
 | 
			
		||||
| 
						 | 
				
			
			@ -710,11 +717,11 @@ describe("Liquity", () => {
 | 
			
		|||
          const castLogEvent = receipt.events.find((e) => e.event === "LogCast")
 | 
			
		||||
            .args;
 | 
			
		||||
          const expectedEventParams = ethers.utils.defaultAbiCoder.encode(
 | 
			
		||||
            ["address", "uint256", "uint256"],
 | 
			
		||||
            [userWallet.address, topupAmount, 0]
 | 
			
		||||
            ["address", "uint256", "uint256", "uint256"],
 | 
			
		||||
            [dsa.address, topupAmount, 0, 0]
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventNames[0]).eq(
 | 
			
		||||
            "LogDeposit(address,uint256,uint256)"
 | 
			
		||||
            "LogDeposit(address,uint256,uint256,uint256)"
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventParams[0]).eq(expectedEventParams);
 | 
			
		||||
        });
 | 
			
		||||
| 
						 | 
				
			
			@ -734,7 +741,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const withdrawEthSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "withdraw",
 | 
			
		||||
            args: [withdrawAmount, upperHint, lowerHint, 0],
 | 
			
		||||
            args: [withdrawAmount, upperHint, lowerHint, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          await dsa
 | 
			
		||||
| 
						 | 
				
			
			@ -772,7 +779,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const withdrawEthFromTroveSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "withdraw",
 | 
			
		||||
            args: [withdrawAmount, upperHint, lowerHint, withdrawId],
 | 
			
		||||
            args: [withdrawAmount, upperHint, lowerHint, 0, withdrawId],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          const withdrawEthSpell = {
 | 
			
		||||
| 
						 | 
				
			
			@ -815,11 +822,10 @@ describe("Liquity", () => {
 | 
			
		|||
          const withdrawAmount = ethers.utils.parseEther("1");
 | 
			
		||||
          const upperHint = ethers.constants.AddressZero;
 | 
			
		||||
          const lowerHint = ethers.constants.AddressZero;
 | 
			
		||||
          const setId = 0;
 | 
			
		||||
          const withdrawEthSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "withdraw",
 | 
			
		||||
            args: [withdrawAmount, upperHint, lowerHint, setId],
 | 
			
		||||
            args: [withdrawAmount, upperHint, lowerHint, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          const withdrawTx = await dsa
 | 
			
		||||
| 
						 | 
				
			
			@ -830,11 +836,11 @@ describe("Liquity", () => {
 | 
			
		|||
          const castLogEvent = receipt.events.find((e) => e.event === "LogCast")
 | 
			
		||||
            .args;
 | 
			
		||||
          const expectedEventParams = ethers.utils.defaultAbiCoder.encode(
 | 
			
		||||
            ["address", "uint256", "uint256"],
 | 
			
		||||
            [userWallet.address, withdrawAmount, setId]
 | 
			
		||||
            ["address", "uint256", "uint256", "uint256"],
 | 
			
		||||
            [dsa.address, withdrawAmount, 0, 0]
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventNames[0]).eq(
 | 
			
		||||
            "LogWithdraw(address,uint256,uint256)"
 | 
			
		||||
            "LogWithdraw(address,uint256,uint256,uint256)"
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventParams[0]).eq(expectedEventParams);
 | 
			
		||||
        });
 | 
			
		||||
| 
						 | 
				
			
			@ -856,7 +862,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const borrowSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "borrow",
 | 
			
		||||
            args: [maxFeePercentage, borrowAmount, upperHint, lowerHint, 0],
 | 
			
		||||
            args: [maxFeePercentage, borrowAmount, upperHint, lowerHint, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          // Borrow more LUSD from the Trove
 | 
			
		||||
| 
						 | 
				
			
			@ -896,6 +902,7 @@ describe("Liquity", () => {
 | 
			
		|||
              borrowAmount,
 | 
			
		||||
              upperHint,
 | 
			
		||||
              lowerHint,
 | 
			
		||||
              0,
 | 
			
		||||
              borrowId,
 | 
			
		||||
            ],
 | 
			
		||||
          };
 | 
			
		||||
| 
						 | 
				
			
			@ -944,11 +951,10 @@ describe("Liquity", () => {
 | 
			
		|||
          const upperHint = ethers.constants.AddressZero;
 | 
			
		||||
          const lowerHint = ethers.constants.AddressZero;
 | 
			
		||||
          const maxFeePercentage = ethers.utils.parseUnits("0.5", 18); // 0.5% max fee
 | 
			
		||||
          const setId = 0;
 | 
			
		||||
          const borrowSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "borrow",
 | 
			
		||||
            args: [maxFeePercentage, borrowAmount, upperHint, lowerHint, setId],
 | 
			
		||||
            args: [maxFeePercentage, borrowAmount, upperHint, lowerHint, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          const borrowTx = await dsa
 | 
			
		||||
| 
						 | 
				
			
			@ -959,11 +965,11 @@ describe("Liquity", () => {
 | 
			
		|||
          const castLogEvent = receipt.events.find((e) => e.event === "LogCast")
 | 
			
		||||
            .args;
 | 
			
		||||
          const expectedEventParams = ethers.utils.defaultAbiCoder.encode(
 | 
			
		||||
            ["address", "uint256", "uint256"],
 | 
			
		||||
            [userWallet.address, borrowAmount, setId]
 | 
			
		||||
            ["address", "uint256", "uint256", "uint256"],
 | 
			
		||||
            [dsa.address, borrowAmount, 0, 0]
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventNames[0]).eq(
 | 
			
		||||
            "LogBorrow(address,uint256,uint256)"
 | 
			
		||||
            "LogBorrow(address,uint256,uint256,uint256)"
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventParams[0]).eq(expectedEventParams);
 | 
			
		||||
        });
 | 
			
		||||
| 
						 | 
				
			
			@ -997,7 +1003,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const repaySpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "repay",
 | 
			
		||||
            args: [repayAmount, upperHint, lowerHint, 0],
 | 
			
		||||
            args: [repayAmount, upperHint, lowerHint, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          await dsa
 | 
			
		||||
| 
						 | 
				
			
			@ -1061,7 +1067,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const borrowSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "repay",
 | 
			
		||||
            args: [0, upperHint, lowerHint, lusdDepositId],
 | 
			
		||||
            args: [0, upperHint, lowerHint, lusdDepositId, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          const spells = [depositSpell, borrowSpell];
 | 
			
		||||
| 
						 | 
				
			
			@ -1099,12 +1105,11 @@ describe("Liquity", () => {
 | 
			
		|||
            borrowAmount,
 | 
			
		||||
            liquity
 | 
			
		||||
          );
 | 
			
		||||
          const getId = 0;
 | 
			
		||||
 | 
			
		||||
          const borrowSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "repay",
 | 
			
		||||
            args: [repayAmount, upperHint, lowerHint, getId],
 | 
			
		||||
            args: [repayAmount, upperHint, lowerHint, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          const repayTx = await dsa
 | 
			
		||||
| 
						 | 
				
			
			@ -1117,11 +1122,11 @@ describe("Liquity", () => {
 | 
			
		|||
          const castLogEvent = receipt.events.find((e) => e.event === "LogCast")
 | 
			
		||||
            .args;
 | 
			
		||||
          const expectedEventParams = ethers.utils.defaultAbiCoder.encode(
 | 
			
		||||
            ["address", "uint256", "uint256"],
 | 
			
		||||
            [userWallet.address, repayAmount, getId]
 | 
			
		||||
            ["address", "uint256", "uint256", "uint256"],
 | 
			
		||||
            [dsa.address, repayAmount, 0, 0]
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventNames[0]).eq(
 | 
			
		||||
            "LogRepay(address,uint256,uint256)"
 | 
			
		||||
            "LogRepay(address,uint256,uint256,uint256)"
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventParams[0]).eq(expectedEventParams);
 | 
			
		||||
        });
 | 
			
		||||
| 
						 | 
				
			
			@ -1151,16 +1156,14 @@ describe("Liquity", () => {
 | 
			
		|||
            method: "adjust",
 | 
			
		||||
            args: [
 | 
			
		||||
              maxFeePercentage,
 | 
			
		||||
              withdrawAmount,
 | 
			
		||||
              depositAmount,
 | 
			
		||||
              withdrawAmount,
 | 
			
		||||
              borrowAmount,
 | 
			
		||||
              repayAmount,
 | 
			
		||||
              upperHint,
 | 
			
		||||
              lowerHint,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              [0, 0, 0, 0],
 | 
			
		||||
              [0, 0, 0, 0],
 | 
			
		||||
            ],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1218,16 +1221,14 @@ describe("Liquity", () => {
 | 
			
		|||
            method: "adjust",
 | 
			
		||||
            args: [
 | 
			
		||||
              maxFeePercentage,
 | 
			
		||||
              withdrawAmount,
 | 
			
		||||
              depositAmount,
 | 
			
		||||
              withdrawAmount,
 | 
			
		||||
              borrowAmount,
 | 
			
		||||
              repayAmount,
 | 
			
		||||
              upperHint,
 | 
			
		||||
              lowerHint,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              [0, 0, 0, 0],
 | 
			
		||||
              [0, 0, 0, 0],
 | 
			
		||||
            ],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1297,16 +1298,14 @@ describe("Liquity", () => {
 | 
			
		|||
            method: "adjust",
 | 
			
		||||
            args: [
 | 
			
		||||
              maxFeePercentage,
 | 
			
		||||
              withdrawAmount,
 | 
			
		||||
              0, // Deposit amount comes from a previous spell's storage slot
 | 
			
		||||
              withdrawAmount,
 | 
			
		||||
              borrowAmount,
 | 
			
		||||
              0, // Repay amount comes from a previous spell's storage slot
 | 
			
		||||
              upperHint,
 | 
			
		||||
              lowerHint,
 | 
			
		||||
              ethDepositId,
 | 
			
		||||
              0,
 | 
			
		||||
              lusdRepayId,
 | 
			
		||||
              0,
 | 
			
		||||
              [ethDepositId, 0, 0, 0],
 | 
			
		||||
              [0, 0, 0, 0],
 | 
			
		||||
            ],
 | 
			
		||||
          };
 | 
			
		||||
          const spells = [depositEthSpell, depositLusdSpell, adjustSpell];
 | 
			
		||||
| 
						 | 
				
			
			@ -1379,16 +1378,14 @@ describe("Liquity", () => {
 | 
			
		|||
            method: "adjust",
 | 
			
		||||
            args: [
 | 
			
		||||
              maxFeePercentage,
 | 
			
		||||
              withdrawAmount,
 | 
			
		||||
              depositAmount,
 | 
			
		||||
              withdrawAmount,
 | 
			
		||||
              borrowAmount,
 | 
			
		||||
              repayAmount,
 | 
			
		||||
              upperHint,
 | 
			
		||||
              lowerHint,
 | 
			
		||||
              0,
 | 
			
		||||
              ethWithdrawId,
 | 
			
		||||
              0,
 | 
			
		||||
              lusdBorrowId,
 | 
			
		||||
              [0, 0, 0, 0],
 | 
			
		||||
              [0, ethWithdrawId, lusdBorrowId, 0],
 | 
			
		||||
            ],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1432,7 +1429,6 @@ describe("Liquity", () => {
 | 
			
		|||
          const userLusdBalanceAfter = await liquity.lusdToken.balanceOf(
 | 
			
		||||
            userWallet.address
 | 
			
		||||
          );
 | 
			
		||||
 | 
			
		||||
          expect(userEthBalanceAfter).eq(
 | 
			
		||||
            userEthBalanceBefore.add(withdrawAmount)
 | 
			
		||||
          );
 | 
			
		||||
| 
						 | 
				
			
			@ -1452,26 +1448,20 @@ describe("Liquity", () => {
 | 
			
		|||
          const upperHint = ethers.constants.AddressZero;
 | 
			
		||||
          const lowerHint = ethers.constants.AddressZero;
 | 
			
		||||
          const maxFeePercentage = ethers.utils.parseUnits("0.5", 18); // 0.5% max fee
 | 
			
		||||
          const getDepositId = 0;
 | 
			
		||||
          const setWithdrawId = 0;
 | 
			
		||||
          const getRepayId = 0;
 | 
			
		||||
          const setBorrowId = 0;
 | 
			
		||||
 | 
			
		||||
          const adjustSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "adjust",
 | 
			
		||||
            args: [
 | 
			
		||||
              maxFeePercentage,
 | 
			
		||||
              withdrawAmount,
 | 
			
		||||
              depositAmount,
 | 
			
		||||
              withdrawAmount,
 | 
			
		||||
              borrowAmount,
 | 
			
		||||
              repayAmount,
 | 
			
		||||
              upperHint,
 | 
			
		||||
              lowerHint,
 | 
			
		||||
              getDepositId,
 | 
			
		||||
              setWithdrawId,
 | 
			
		||||
              getRepayId,
 | 
			
		||||
              setBorrowId,
 | 
			
		||||
              [0, 0, 0, 0],
 | 
			
		||||
              [0, 0, 0, 0],
 | 
			
		||||
            ],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1493,26 +1483,22 @@ describe("Liquity", () => {
 | 
			
		|||
              "uint256",
 | 
			
		||||
              "uint256",
 | 
			
		||||
              "uint256",
 | 
			
		||||
              "uint256",
 | 
			
		||||
              "uint256",
 | 
			
		||||
              "uint256",
 | 
			
		||||
              "uint256",
 | 
			
		||||
              "uint256[]",
 | 
			
		||||
              "uint256[]",
 | 
			
		||||
            ],
 | 
			
		||||
            [
 | 
			
		||||
              userWallet.address,
 | 
			
		||||
              dsa.address,
 | 
			
		||||
              maxFeePercentage,
 | 
			
		||||
              depositAmount,
 | 
			
		||||
              withdrawAmount,
 | 
			
		||||
              borrowAmount,
 | 
			
		||||
              repayAmount,
 | 
			
		||||
              getDepositId,
 | 
			
		||||
              setWithdrawId,
 | 
			
		||||
              getRepayId,
 | 
			
		||||
              setBorrowId,
 | 
			
		||||
              [0, 0, 0, 0],
 | 
			
		||||
              [0, 0, 0, 0],
 | 
			
		||||
            ]
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventNames[0]).eq(
 | 
			
		||||
            "LogAdjust(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)"
 | 
			
		||||
            "LogAdjust(address,uint256,uint256,uint256,uint256,uint256,uint256[],uint256[])"
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventParams[0]).eq(expectedEventParams);
 | 
			
		||||
        });
 | 
			
		||||
| 
						 | 
				
			
			@ -1652,7 +1638,7 @@ describe("Liquity", () => {
 | 
			
		|||
            .args;
 | 
			
		||||
          const expectedEventParams = ethers.utils.defaultAbiCoder.encode(
 | 
			
		||||
            ["address", "uint256", "uint256"],
 | 
			
		||||
            [userWallet.address, claimAmount, setId]
 | 
			
		||||
            [dsa.address, claimAmount, setId]
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventNames[0]).eq(
 | 
			
		||||
            "LogClaimCollateralFromRedemption(address,uint256,uint256)"
 | 
			
		||||
| 
						 | 
				
			
			@ -1678,7 +1664,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const stabilityDepositSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "stabilityDeposit",
 | 
			
		||||
            args: [amount, frontendTag, 0, 0, 0],
 | 
			
		||||
            args: [amount, frontendTag, 0, 0, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          await dsa
 | 
			
		||||
| 
						 | 
				
			
			@ -1711,7 +1697,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const stabilityDepositSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "stabilityDeposit",
 | 
			
		||||
            args: [0, frontendTag, lusdDepositId, 0, 0],
 | 
			
		||||
            args: [0, frontendTag, lusdDepositId, 0, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
          const spells = [depositLusdSpell, stabilityDepositSpell];
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1735,6 +1721,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const halfAmount = amount.div(2);
 | 
			
		||||
          const frontendTag = ethers.constants.AddressZero;
 | 
			
		||||
          const getDepositId = 0;
 | 
			
		||||
          const setDepositId = 0;
 | 
			
		||||
          const setEthGainId = 0;
 | 
			
		||||
          const setLqtyGainId = 0;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1748,7 +1735,14 @@ describe("Liquity", () => {
 | 
			
		|||
          const stabilityDepositSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "stabilityDeposit",
 | 
			
		||||
            args: [halfAmount, frontendTag, getDepositId, 0, 0],
 | 
			
		||||
            args: [
 | 
			
		||||
              halfAmount,
 | 
			
		||||
              frontendTag,
 | 
			
		||||
              getDepositId,
 | 
			
		||||
              setDepositId,
 | 
			
		||||
              setEthGainId,
 | 
			
		||||
              setLqtyGainId,
 | 
			
		||||
            ],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          // Create a Stability deposit for this DSA
 | 
			
		||||
| 
						 | 
				
			
			@ -1803,20 +1797,22 @@ describe("Liquity", () => {
 | 
			
		|||
              "uint256",
 | 
			
		||||
              "uint256",
 | 
			
		||||
              "uint256",
 | 
			
		||||
              "uint256",
 | 
			
		||||
            ],
 | 
			
		||||
            [
 | 
			
		||||
              userWallet.address,
 | 
			
		||||
              dsa.address,
 | 
			
		||||
              halfAmount,
 | 
			
		||||
              ethGain,
 | 
			
		||||
              lqtyGain,
 | 
			
		||||
              frontendTag,
 | 
			
		||||
              getDepositId,
 | 
			
		||||
              setDepositId,
 | 
			
		||||
              setEthGainId,
 | 
			
		||||
              setLqtyGainId,
 | 
			
		||||
            ]
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventNames[0]).eq(
 | 
			
		||||
            "LogStabilityDeposit(address,uint256,uint256,uint256,address,uint256,uint256,uint256)"
 | 
			
		||||
            "LogStabilityDeposit(address,uint256,uint256,uint256,address,uint256,uint256,uint256,uint256)"
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventParams[0]).eq(expectedEventParams);
 | 
			
		||||
        });
 | 
			
		||||
| 
						 | 
				
			
			@ -1849,14 +1845,14 @@ describe("Liquity", () => {
 | 
			
		|||
          const stabilityDepositSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "stabilityDeposit",
 | 
			
		||||
            args: [amount, frontendTag, 0, 0, 0],
 | 
			
		||||
            args: [amount, frontendTag, 0, 0, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          // Withdraw half of the deposit
 | 
			
		||||
          const stabilityWithdrawSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "stabilityWithdraw",
 | 
			
		||||
            args: [amount.div(2), 0, 0, 0],
 | 
			
		||||
            args: [amount.div(2), 0, 0, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
          const spells = [stabilityDepositSpell, stabilityWithdrawSpell];
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1899,14 +1895,14 @@ describe("Liquity", () => {
 | 
			
		|||
          const stabilityDepositSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "stabilityDeposit",
 | 
			
		||||
            args: [amount, frontendTag, 0, 0, 0],
 | 
			
		||||
            args: [amount, frontendTag, 0, 0, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          // Withdraw half of the deposit
 | 
			
		||||
          const stabilityWithdrawSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "stabilityWithdraw",
 | 
			
		||||
            args: [amount.div(2), 0, 0, withdrawId],
 | 
			
		||||
            args: [amount.div(2), 0, 0, 0, withdrawId],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          const withdrawLusdSpell = {
 | 
			
		||||
| 
						 | 
				
			
			@ -1962,11 +1958,12 @@ describe("Liquity", () => {
 | 
			
		|||
          const stabilityDepositSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "stabilityDeposit",
 | 
			
		||||
            args: [amount, frontendTag, 0, 0, 0],
 | 
			
		||||
            args: [amount, frontendTag, 0, 0, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          // Withdraw half of the deposit
 | 
			
		||||
          const withdrawAmount = amount.div(2);
 | 
			
		||||
          const getWithdrawId = 0;
 | 
			
		||||
          const setWithdrawId = 0;
 | 
			
		||||
          const setEthGainId = 0;
 | 
			
		||||
          const setLqtyGainId = 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -2009,7 +2006,13 @@ describe("Liquity", () => {
 | 
			
		|||
          const stabilityWithdrawSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "stabilityWithdraw",
 | 
			
		||||
            args: [withdrawAmount, setWithdrawId, setEthGainId, setLqtyGainId],
 | 
			
		||||
            args: [
 | 
			
		||||
              withdrawAmount,
 | 
			
		||||
              getWithdrawId,
 | 
			
		||||
              setWithdrawId,
 | 
			
		||||
              setEthGainId,
 | 
			
		||||
              setLqtyGainId,
 | 
			
		||||
            ],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          const withdrawTx = await dsa
 | 
			
		||||
| 
						 | 
				
			
			@ -2031,19 +2034,21 @@ describe("Liquity", () => {
 | 
			
		|||
              "uint256",
 | 
			
		||||
              "uint256",
 | 
			
		||||
              "uint256",
 | 
			
		||||
              "uint256",
 | 
			
		||||
            ],
 | 
			
		||||
            [
 | 
			
		||||
              userWallet.address,
 | 
			
		||||
              dsa.address,
 | 
			
		||||
              withdrawAmount,
 | 
			
		||||
              ethGain,
 | 
			
		||||
              lqtyGain,
 | 
			
		||||
              getWithdrawId,
 | 
			
		||||
              setWithdrawId,
 | 
			
		||||
              setEthGainId,
 | 
			
		||||
              setLqtyGainId,
 | 
			
		||||
            ]
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventNames[0]).eq(
 | 
			
		||||
            "LogStabilityWithdraw(address,uint256,uint256,uint256,uint256,uint256,uint256)"
 | 
			
		||||
            "LogStabilityWithdraw(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256)"
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventParams[0]).eq(expectedEventParams);
 | 
			
		||||
        });
 | 
			
		||||
| 
						 | 
				
			
			@ -2072,7 +2077,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const stabilityDepositSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "stabilityDeposit",
 | 
			
		||||
            args: [amount, frontendTag, 0, 0, 0],
 | 
			
		||||
            args: [amount, frontendTag, 0, 0, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          await dsa
 | 
			
		||||
| 
						 | 
				
			
			@ -2125,7 +2130,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const stabilityDepositSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "stabilityDeposit",
 | 
			
		||||
            args: [amount, frontendTag, 0, 0, 0],
 | 
			
		||||
            args: [amount, frontendTag, 0, 0, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          await dsa
 | 
			
		||||
| 
						 | 
				
			
			@ -2160,7 +2165,7 @@ describe("Liquity", () => {
 | 
			
		|||
            .args;
 | 
			
		||||
          const expectedEventParams = ethers.utils.defaultAbiCoder.encode(
 | 
			
		||||
            ["address", "uint256"],
 | 
			
		||||
            [userWallet.address, ethGainFromLiquidation]
 | 
			
		||||
            [dsa.address, ethGainFromLiquidation]
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventNames[0]).eq(
 | 
			
		||||
            "LogStabilityMoveEthGainToTrove(address,uint256)"
 | 
			
		||||
| 
						 | 
				
			
			@ -2188,7 +2193,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const stakeSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "stake",
 | 
			
		||||
            args: [amount, 0, 0, 0],
 | 
			
		||||
            args: [amount, 0, 0, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          await dsa
 | 
			
		||||
| 
						 | 
				
			
			@ -2228,7 +2233,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const stakeSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "stake",
 | 
			
		||||
            args: [0, lqtyDepositId, lqtyDepositId, 0],
 | 
			
		||||
            args: [0, lqtyDepositId, 0, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
          const spells = [depositSpell, stakeSpell];
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2262,12 +2267,13 @@ describe("Liquity", () => {
 | 
			
		|||
          );
 | 
			
		||||
 | 
			
		||||
          const getStakeId = 0;
 | 
			
		||||
          const setStakeId = 0;
 | 
			
		||||
          const setEthGainId = 0;
 | 
			
		||||
          const setLusdGainId = 0;
 | 
			
		||||
          const stakeSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "stake",
 | 
			
		||||
            args: [amount, getStakeId, setEthGainId, setLusdGainId],
 | 
			
		||||
            args: [amount, getStakeId, setStakeId, setEthGainId, setLusdGainId],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          const stakeTx = await dsa
 | 
			
		||||
| 
						 | 
				
			
			@ -2279,17 +2285,18 @@ describe("Liquity", () => {
 | 
			
		|||
          const castLogEvent = receipt.events.find((e) => e.event === "LogCast")
 | 
			
		||||
            .args;
 | 
			
		||||
          const expectedEventParams = ethers.utils.defaultAbiCoder.encode(
 | 
			
		||||
            ["address", "uint256", "uint256", "uint256", "uint256"],
 | 
			
		||||
            ["address", "uint256", "uint256", "uint256", "uint256", "uint256"],
 | 
			
		||||
            [
 | 
			
		||||
              userWallet.address,
 | 
			
		||||
              dsa.address,
 | 
			
		||||
              amount,
 | 
			
		||||
              getStakeId,
 | 
			
		||||
              setStakeId,
 | 
			
		||||
              setEthGainId,
 | 
			
		||||
              setLusdGainId,
 | 
			
		||||
            ]
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventNames[0]).eq(
 | 
			
		||||
            "LogStake(address,uint256,uint256,uint256,uint256)"
 | 
			
		||||
            "LogStake(address,uint256,uint256,uint256,uint256,uint256)"
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventParams[0]).eq(expectedEventParams);
 | 
			
		||||
        });
 | 
			
		||||
| 
						 | 
				
			
			@ -2308,7 +2315,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const stakeSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "stake",
 | 
			
		||||
            args: [amount, 0, 0, 0],
 | 
			
		||||
            args: [amount, 0, 0, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          await dsa
 | 
			
		||||
| 
						 | 
				
			
			@ -2321,7 +2328,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const unstakeSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "unstake",
 | 
			
		||||
            args: [amount, 0, 0, 0],
 | 
			
		||||
            args: [amount, 0, 0, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          await dsa
 | 
			
		||||
| 
						 | 
				
			
			@ -2351,7 +2358,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const stakeSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "stake",
 | 
			
		||||
            args: [amount, 0, 0, 0],
 | 
			
		||||
            args: [amount, 0, 0, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          await dsa
 | 
			
		||||
| 
						 | 
				
			
			@ -2365,7 +2372,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const unstakeSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "unstake",
 | 
			
		||||
            args: [amount, withdrawId, 0, 0],
 | 
			
		||||
            args: [amount, 0, withdrawId, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          const withdrawLqtySpell = {
 | 
			
		||||
| 
						 | 
				
			
			@ -2410,20 +2417,27 @@ describe("Liquity", () => {
 | 
			
		|||
          const stakeSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "stake",
 | 
			
		||||
            args: [amount, 0, 0, 0],
 | 
			
		||||
            args: [amount, 0, 0, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          await dsa
 | 
			
		||||
            .connect(userWallet)
 | 
			
		||||
            .cast(...encodeSpells([stakeSpell]), userWallet.address);
 | 
			
		||||
 | 
			
		||||
          const getUnstakeId = 0;
 | 
			
		||||
          const setUnstakeId = 0;
 | 
			
		||||
          const setEthGainId = 0;
 | 
			
		||||
          const setLusdGainId = 0;
 | 
			
		||||
          const unstakeSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "unstake",
 | 
			
		||||
            args: [amount, setUnstakeId, setEthGainId, setLusdGainId],
 | 
			
		||||
            args: [
 | 
			
		||||
              amount,
 | 
			
		||||
              getUnstakeId,
 | 
			
		||||
              setUnstakeId,
 | 
			
		||||
              setEthGainId,
 | 
			
		||||
              setLusdGainId,
 | 
			
		||||
            ],
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          const unstakeTx = await dsa
 | 
			
		||||
| 
						 | 
				
			
			@ -2435,24 +2449,25 @@ describe("Liquity", () => {
 | 
			
		|||
          const castLogEvent = receipt.events.find((e) => e.event === "LogCast")
 | 
			
		||||
            .args;
 | 
			
		||||
          const expectedEventParams = ethers.utils.defaultAbiCoder.encode(
 | 
			
		||||
            ["address", "uint256", "uint256", "uint256", "uint256"],
 | 
			
		||||
            ["address", "uint256", "uint256", "uint256", "uint256", "uint256"],
 | 
			
		||||
            [
 | 
			
		||||
              userWallet.address,
 | 
			
		||||
              dsa.address,
 | 
			
		||||
              amount,
 | 
			
		||||
              getUnstakeId,
 | 
			
		||||
              setUnstakeId,
 | 
			
		||||
              setEthGainId,
 | 
			
		||||
              setLusdGainId,
 | 
			
		||||
            ]
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventNames[0]).eq(
 | 
			
		||||
            "LogUnstake(address,uint256,uint256,uint256,uint256)"
 | 
			
		||||
            "LogUnstake(address,uint256,uint256,uint256,uint256,uint256)"
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventParams[0]).eq(expectedEventParams);
 | 
			
		||||
        });
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
      describe("claimStakingGains()", () => {
 | 
			
		||||
        it("Claims gains from staking", async () => {
 | 
			
		||||
        it("claims gains from staking", async () => {
 | 
			
		||||
          const stakerDsa = await buildDSAv2(userWallet.address);
 | 
			
		||||
          const amount = ethers.utils.parseUnits("1000", 18); // 1000 LQTY
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2466,7 +2481,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const stakeSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "stake",
 | 
			
		||||
            args: [amount, 0, 0, 0],
 | 
			
		||||
            args: [amount, 0, 0, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
          await stakerDsa
 | 
			
		||||
            .connect(userWallet)
 | 
			
		||||
| 
						 | 
				
			
			@ -2520,7 +2535,7 @@ describe("Liquity", () => {
 | 
			
		|||
          expect(lusdBalanceAfter).to.eq(lusdGain);
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        it("Claims gains from staking and stores them for other spells", async () => {
 | 
			
		||||
        it("claims gains from staking and stores them for other spells", async () => {
 | 
			
		||||
          const stakerDsa = await buildDSAv2(userWallet.address);
 | 
			
		||||
          const amount = ethers.utils.parseUnits("1000", 18); // 1000 LQTY
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2534,7 +2549,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const stakeSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "stake",
 | 
			
		||||
            args: [amount, 0, 0, 0],
 | 
			
		||||
            args: [amount, 0, 0, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
          await stakerDsa
 | 
			
		||||
            .connect(userWallet)
 | 
			
		||||
| 
						 | 
				
			
			@ -2634,7 +2649,7 @@ describe("Liquity", () => {
 | 
			
		|||
          const stakeSpell = {
 | 
			
		||||
            connector: helpers.LIQUITY_CONNECTOR,
 | 
			
		||||
            method: "stake",
 | 
			
		||||
            args: [amount, 0, 0, 0],
 | 
			
		||||
            args: [amount, 0, 0, 0, 0],
 | 
			
		||||
          };
 | 
			
		||||
          await stakerDsa
 | 
			
		||||
            .connect(userWallet)
 | 
			
		||||
| 
						 | 
				
			
			@ -2680,7 +2695,7 @@ describe("Liquity", () => {
 | 
			
		|||
            .args;
 | 
			
		||||
          const expectedEventParams = ethers.utils.defaultAbiCoder.encode(
 | 
			
		||||
            ["address", "uint256", "uint256", "uint256", "uint256"],
 | 
			
		||||
            [userWallet.address, ethGain, lusdGain, setEthGainId, setLusdGainId]
 | 
			
		||||
            [stakerDsa.address, ethGain, lusdGain, setEthGainId, setLusdGainId]
 | 
			
		||||
          );
 | 
			
		||||
          expect(castLogEvent.eventNames[0]).eq(
 | 
			
		||||
            "LogClaimStakingGains(address,uint256,uint256,uint256,uint256)"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user